Python爬虫:scrapy辅助功能实用函数

本文涉及的产品
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
简介: Python爬虫:scrapy辅助功能实用函数

scrapy辅助功能实用函数:


get_response: 获得scrapy.HtmlResponse对象, 在不新建scrapy项目工程的情况下,使用scrapy的一些函数做测试


extract_links: 解析出所有符合条件的链接


代码示例

以拉勾首页为例,获取拉勾首页所有职位链接,进一步可以单独解析这些链接,获取职位的详情信息


import requests
from scrapy.http import HtmlResponse
from scrapy.linkextractors import LinkExtractor
def get_response(url):
    """
    获得scrapy.HtmlResponse对象, 在不新建scrapy项目工程的情况下,
    使用scrapy的一些函数做测试
    :param url: {str} 链接
    :return: {HtmlResponse} scrapy响应对象
    """
    headers = {
        "User-Agent": "Mozilla/5.0 (Windows NT 6.3; rv:36.0) Gecko/20100101 Firefox/36.0"
    }
    response = requests.get(url, headers=headers)
    return HtmlResponse(url=url, body=response.content)
def extract_links(response, allow, allow_domains):
    """
    解析所有符合要求的链接, 每次都解析不出来text属性,所以直接封装,可以做一些特定扩展
    :param response: {scrapy.http.HtmlResponse} scrapy响应
    :param allow: {tuple} 链接限定元组
    :param allow_domains: {tuple} 域名限定元组
    :return: {iterator({str})}
    """
    link_extractor = LinkExtractor(allow=allow, allow_domains=allow_domains)
    links = link_extractor.extract_links(response)
    return (link.url for link in links)
if __name__ == '__main__':
    url = "https://www.lagou.com/"
    response = get_response(url)
    links = extract_links(response, ("jobs/\d+.html"), ("lagou.com",))
    for link in links:
        print(link)
    """
   https://www.lagou.com/jobs/5185130.html
   https://www.lagou.com/jobs/4200613.html
   https://www.lagou.com/jobs/5039140.html
   https://www.lagou.com/jobs/5174337.html
   https://www.lagou.com/jobs/5185128.html
   https://www.lagou.com/jobs/5185127.html
    ...
    """
相关文章
|
8天前
|
数据采集 存储 JSON
Python网络爬虫:Scrapy框架的实战应用与技巧分享
【10月更文挑战第27天】本文介绍了Python网络爬虫Scrapy框架的实战应用与技巧。首先讲解了如何创建Scrapy项目、定义爬虫、处理JSON响应、设置User-Agent和代理,以及存储爬取的数据。通过具体示例,帮助读者掌握Scrapy的核心功能和使用方法,提升数据采集效率。
47 6
|
1天前
|
数据采集 Web App开发 监控
高效爬取B站评论:Python爬虫的最佳实践
高效爬取B站评论:Python爬虫的最佳实践
|
2天前
|
数据采集 存储 JSON
Python爬虫开发中的分析与方案制定
Python爬虫开发中的分析与方案制定
|
7天前
|
数据采集 JSON 测试技术
Python爬虫神器requests库的使用
在现代编程中,网络请求是必不可少的部分。本文详细介绍 Python 的 requests 库,一个功能强大且易用的 HTTP 请求库。内容涵盖安装、基本功能(如发送 GET 和 POST 请求、设置请求头、处理响应)、高级功能(如会话管理和文件上传)以及实际应用场景。通过本文,你将全面掌握 requests 库的使用方法。🚀🌟
28 7
|
6天前
|
设计模式 缓存 测试技术
Python中的装饰器:功能增强与代码复用的艺术####
本文将深入探讨Python中装饰器的概念、用途及实现方式,通过实例演示其如何为函数或方法添加新功能而不影响原有代码结构,从而提升代码的可读性和可维护性。我们将从基础定义出发,逐步深入到高级应用,揭示装饰器在提高代码复用性方面的强大能力。 ####
|
7天前
|
缓存 测试技术 数据安全/隐私保护
探索Python中的装饰器:简化代码,增强功能
【10月更文挑战第29天】本文通过深入浅出的方式,探讨了Python装饰器的概念、使用场景和实现方法。文章不仅介绍了装饰器的基本知识,还通过实例展示了如何利用装饰器优化代码结构,提高代码的可读性和重用性。适合初学者和有一定经验的开发者阅读,旨在帮助读者更好地理解和应用装饰器,提升编程效率。
|
6天前
|
数据采集 Web App开发 JavaScript
爬虫策略规避:Python爬虫的浏览器自动化
爬虫策略规避:Python爬虫的浏览器自动化
|
7天前
|
数据采集 存储 XML
Python实现网络爬虫自动化:从基础到实践
本文将介绍如何使用Python编写网络爬虫,从最基础的请求与解析,到自动化爬取并处理复杂数据。我们将通过实例展示如何抓取网页内容、解析数据、处理图片文件等常用爬虫任务。
|
8天前
|
数据采集 中间件 API
在Scrapy爬虫中应用Crawlera进行反爬虫策略
在Scrapy爬虫中应用Crawlera进行反爬虫策略
|
6月前
|
算法 Python 容器
Python编程 - 不调用相关choose库函数,“众数“挑选器、随机挑选器 的源码编程实现
Python编程 - 不调用相关choose库函数,“众数“挑选器、随机挑选器 的源码编程实现
84 0
下一篇
无影云桌面