单线程与多线程爬虫
1.使用urllib爬取百度搜索html2.urllib.request.Request对象封装请求3.urllib发送get请求_中文传参问题4.urllib发送post请求获取html源代码5.获取动态页面html6.忽略SSL证书验证7.使用fake-useragent库伪装请求头8.urllib自定义opener对象设置代理IP9.爬虫cookie的使用10.保存与读取cookie11.使用urllib.error进行请求异常处理12.使用requests库发送get和post请求13.使用Request伪装User-Agent和IP地址14.requests设置超时时间/requests.Session自动保存cookie/verify忽略ssl证书15.re模块的正则表达式规则16.使用re的正则表达式提取腾讯体育新闻摘要17.BeautifulSoup4解析数据18.bs4.find_all()搜索文档树和css选择器提取解析后的html数据19.bs4解析并提取人民网新闻标题数据20.xpath解析数据21.谷歌浏览器的xpath插件安装22.使用re和lxml的xpath功能提取纵横中文网小说推荐榜前3页标题23.JSON数据24.使用jsonpath快速提取json的数据25.提取猫眼电影正在热映电影以及评分
26.单线程与多线程爬虫
单线程爬虫
在执行爬取任务时,程序一次只处理一个任务。这意味着在一个时刻,它只能向一个服务器发送请求,并等待该请求的响应。完成这个请求后,它才会发送下一个请求。单线程爬虫的结构简单,易于理解和实现,但效率较低,特别是在网络延迟较大或需要处理大量数据时。
爬虫多为IO密集型程序,而IO处理速度并不是很快,如果IO卡顿会直接影响速度。
多线程爬虫
多线程爬虫是指程序可以同时运行多个线程,每个线程可以独立地向服务器发送请求。这样,爬虫可以在等待一个请求的同时,发送其它请求,从而显著提升爬取效率。多线程爬虫特别适合于网络延迟较大或需要同时处理多个数据源的情况。
提升爬虫效率的其它方法
- 异步IO(异步编程):不同于多线程,异步IO允许程序在等待一个请求响应时,继续执行其它代码,而不是简单地等待。这种方式可以更高效的利用CPU资源。
- 并发连接数控制:可以避免并发连接对服务器造成过大压力同时保证爬虫效率。
- 代理池:避免IP被封禁的问题,同时可以提高爬取速度和稳定性。
- 分布式爬虫:将爬虫部署在多个服务器上,可以并行处理大量数据,适用于大规模数据抓取。
需要掌握
- python基础:熟悉python语言,特别是函数、类和模块的使用。
- 网络请求:了解HTTP协议,掌握用urllib,requests发送网络请求。
- 多线程编程:学习python的threading模块,了解线程的创建、同步和管理。
- 异步编程:了解asyncio库,掌握异步IO编程模式。
- 代理和IP池:了解如何管理和使用代理IP
- 反爬虫策略应对
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 周边上新:园子的第一款马克杯温暖上架
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
· 使用C#创建一个MCP客户端