![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
python网络爬虫
小维_
这个作者很懒,什么都没留下…
展开
-
python网络爬虫(第十二章:自动爬取网页的爬虫CrawlSpider))
1.CrawlSpiderCrawlSpider:类,是Spider的一个子类全站数据的爬取方式:1.基于Spider:手动请求2.基于CrawlSpider案例1:爬取小程序社区信息步骤1. scrapy startproject shequPro步骤2. sc shequPro步骤3.scrapy genspider -t crawl tengxun www.xxx.com步骤4. spider.pyimport scrapyfrom scrapy.linkextractors原创 2021-08-17 20:12:13 · 567 阅读 · 0 评论 -
python网络爬虫(第十一章:Scrapy框架实战:爬取网页新闻标题和内容)
综合练习:爬取网易新闻标题和内容1.spider.py【完成数据的爬取解析】import scrapyfrom selenium import webdriverfrom wangyiPro.items import WangyiproItemclass WangyiSpider(scrapy.Spider): name = 'wangyi' # allowed_domains = ['www.xxx.com'] start_urls = ['https://news.1原创 2021-08-17 11:33:15 · 1939 阅读 · 1 评论 -
python网络爬虫(第十一章:Scrapy框架实战:爬取图片数据之)
基于scrapy爬取字符串类型的数据和爬取图片类型的数据区别?1.字符串:只需要基于xpath进行解析且提交管道进行持久化存储2.图片:xpath解析出图片src的属性值。需要单独对图片地址发起请求获取图片二进制类型的数据ImagesPipeline只需要将img的src的属性值进行解析,然后提交给管道,管道就会对图片的src进行请求发送获取图片的二进制数据,同时进行持久化存储。需求:爬取站长素材中的高清图片步骤1:数据解析import scrapyfrom imgPro.items i原创 2021-08-16 16:36:52 · 480 阅读 · 0 评论 -
python网络爬虫(第十一章:Scrapy框架请求传参之实战)
1.请求传参使用场景:如果爬取解析的数据不在同一张页面中(深度爬取)需求:爬取boss的岗位名称,岗位描述【岗位名称和岗位描述不在同一张页面中】原创 2021-08-16 15:04:25 · 235 阅读 · 0 评论 -
python网络爬虫(第十一章:Scrapy终端与核心组件)
1.spider作用:产生URL、对URL发送请求;利用parse()方法进行数据解析2.引擎将封装的请求对象(URL)给调度器3.调度器从队列中调用请求对象给引擎【调度器对请求对象进行过滤,之后存入队列中】4.引擎将从调度器中获取的请求对象给下载器,下载器通过网络进行数据下载【下载的数据均在response中】5.下载器将response给引擎6.引擎将response给spider【其实就是将response给spider中的parse()方法,进行数据解析】7.将解析后的数据封装到ite.原创 2021-08-15 20:22:32 · 164 阅读 · 0 评论 -
python网络爬虫(第十章:Scrapy实战1:全站数据爬取)
1.什么是全站数据爬取就是将网站中某板块下的全部页码对应的页面数据进行爬取2.全站数据爬取方式1.将所有网页的URL添加到start_url列表中(不推荐)2.自行手动进行请求发送(推荐)-手动请求发送:yield scrapy.Requests(url,callback)【callback专门用作于数据解析】yield【生成器】:用于迭代操作,更简单理解就是迭代器案例:爬取照片名称【http://www.521609.com/tuku/shz/index.html】import scr原创 2021-08-15 17:19:24 · 726 阅读 · 0 评论 -
python网络爬虫(第十章:初识爬虫框架Scrapy)
1.什么是框架一个集成了很多功能且具有很强通用性的一个项目模拟。2.如何学习框架专门学习框架封装的各种功能的详细用法。3.什么是Scrapy爬虫中封装好的一个明星框架。功能:高性能的持久化存储,异步的数据下载,高性能的数据分析,分布式...原创 2021-08-13 18:44:14 · 632 阅读 · 1 评论 -
python网络爬虫(第九章:存储爬虫数据)
1.数据库存储概述爬虫的数据存储方式:1.存储到本地2.存储到数据库(常见的数据库:MySQL和MangoDB)2.MangDB数据库概述MangDB数据库功能:1.模式自由:可将不同结构的文档存储在同一个数据库中2. 面向集合的存储:适合JSON文件风格的形式3.完整的索引支持4.复制和高可用性5.自动分片6.丰富的查询7.快速就地更新8.高效的传统存储方式2.1MangDB数据在Wins系统下的安装下载官网:https://www.mongodb.com/downloa原创 2021-08-12 22:51:45 · 576 阅读 · 1 评论 -
python网络爬虫(第八章:Tesseract实战)
案例1:古诗文官网使用Tesseract识别图片信息【https://so.gushiwen.cn/user/login.aspx?from=http://so.gushiwen.cn/user/collect.aspx】from selenium import webdriverfrom time import sleepfrom selenium.webdriver import ActionChainsfrom PIL import Imageimport pytesseractdriv原创 2021-08-12 12:15:59 · 236 阅读 · 0 评论 -
python网络爬虫(第八章:图像识别与文字处理)
1.OCR技术概述OCR(Option Character Recognition,OCR):指对文本资料的图像文字进行分析识别处理,获取文字及版本信息的技术。将图片翻译成文字一般被称为 光学文字识别OCROCR过程:1.图像输入(常用语存取图像的开源项目:OpenCV和CxImage等)2.预处理(二指化、噪音清除、倾斜校正)3.版本分析4.字符切割5.字符识别6.版面恢复7.后处理、核对2.TesseractTesseract是一个开源的OCR库。2.1安装安装网址:原创 2021-08-11 22:45:58 · 734 阅读 · 0 评论 -
python网络爬虫(第七章:无头浏览器+规避检测)
案例from selenium import webdriverfrom time import sleep#实现无可视化界面(其实就是后台运行,不要显示在显示屏上面)from selenium.webdriver.chrome.options import Options#实现规避检测from selenium.webdriver import ChromeOptions#1.实现无可视化界面的操作chrome_options = Options()chrome_options.add原创 2021-08-10 16:36:28 · 1437 阅读 · 3 评论 -
python网络爬虫(第七章:selenium实战:模拟登录QQ空间)
1.模拟登录QQ空间from selenium import webdriverfrom time import sleepfrom selenium.webdriver import ActionChains#获取服务器对象driver = webdriver.Chrome('./chromedriver.exe')#发送url请求driver.get('https://qzone.qq.com/')#定位变迁driver.switch_to.frame('login_frame原创 2021-08-10 15:49:26 · 181 阅读 · 0 评论 -
python网络爬虫(第七章:iframe处理+动作链)
1.selenium处理 iframe一张页面当中可以嵌套一张子页面,可是通过iframe标签实现子页面的嵌套https://www.runoob.com/try/try.php?filename=jqueryui-api-droppableiframe标签中的标签定位和一般的网页标签定位的区别是:一般的网页标签定位:driver.find_element_by_id('XXX')iframe标签中的标签定位:driver.switch_to.frame('AAA')driver.find原创 2021-08-10 11:49:49 · 2009 阅读 · 0 评论 -
python网络爬虫(第七章:爬取动态内容)
1.动态网页介绍如何确定一个页面的数据是否为动态加载数据?1.抓包工具 network 中的某个网页中的response,中返回的这个网页,在里面搜索是否有关键字 (ctrl+F )若没有,则是动态加载出来的2.从全局搜索,然后自动定位到网站就可以找到这个动态加载的数据2.selenium模块和爬虫的关联1.便捷的获取网站中动态加载的数据2.便捷实现模拟登录3.selenium模块selenium模块是基于浏览器自动化的一个模块。3.1环境安装1.pip install selen原创 2021-08-07 16:59:38 · 548 阅读 · 0 评论 -
python网络爬虫(第六章:实战:aiohttp + 实现多任务异步协程实现异步爬虫)
aiohttp + 实现多任务异步协程实现异步爬虫环境安装:pip install aiohttp使用:该模块中的ClientSession对象实例化一个session,进行网络请求的发送。普通的网络请求的发送:#import asyncioimport timeimport requestsstart = time.time()urls = ['','','']async def get_page(url): print('正在下载',url) #requ原创 2021-08-05 17:15:57 · 699 阅读 · 0 评论 -
python网络爬虫(第六章:实战:协程爬虫)
爬虫安装:pip install aiohttp#================实战:异步爬虫======import aiohttpimport asyncioasync def fetch(session,url): print("发送请求:",url) async with session.get(url,verify_ssl=False) as resonse: text = await resonse.text() print("原创 2021-08-02 08:15:48 · 193 阅读 · 0 评论 -
python网络爬虫(第六章:异步编程)
1.事件循环可以理解为一个死循环,去检测并执行某些代码原理:# 异步编程# 伪代码任务列表 = [任务1,任务2,任务3,...]while True: 可执行的任务列表,已完成的任务列表 = 去任务列表中检查所有的任务,将’可执行‘和’已完成‘的任务返回 for 就绪任务 in 可执行的任务列表: 执行已就绪的任务 for 已完成的任务 in 已完成的任务列表: 在任务列表中移除 已完成的任务 如果 任务列表 中的任务都已完原创 2021-08-02 07:39:26 · 215 阅读 · 0 评论 -
python网络爬虫(第六章:实战7:协程)
实战1:下载三张图片(IO)原创 2021-07-31 10:34:36 · 103 阅读 · 0 评论 -
python网络爬虫(第六章:协程的实现方法)
1.协程协程(Coroutine):又称微线程,是一种用户态内的上下文切换技术。简而言之,就是通过一个线程实现代码块相互切换执行。意义:在一个县城中如果遇到IO等待时间,线程不会傻傻等,会在空闲的时间再干其他事情。一个线程,可以认为是人为的控制线程在函数之间进行线程切换,且仅有一个线程来完成切换。实现协程的方法:1.greenlet 早期模块2.yield关键字 yield是python中的生成器3.asyncio装饰器(py3.4)4.async、await关键字(py3.5)【推原创 2021-07-30 22:49:10 · 304 阅读 · 0 评论 -
python网络爬虫(第六章:并发下载)
异步爬虫的方式高性能异步爬虫:在爬虫中使用异步实现高性能的数据爬取操作异步爬虫的方式:1.多线程、多进程(不建议): 好处:可以为相关阻塞的操作单独开启线程或者进程,阻塞操作就可以进行异步执行。 弊端:无法无限制的开启多线程或者多进程。2.线程池、进程池: 好处:可以降低系统对进程或者线程创建或者销毁的一个频率,从而很好的降低系统的开销。 弊端:池中线程或者进程的数量是有上限。3.**单线程+异步协程(推荐)** enent_loop:时间循环,相当于一个无限循环,我们可以把一些函数注册原创 2021-07-30 18:41:44 · 193 阅读 · 0 评论 -
python网络爬虫(第五章:实战7:jsonpath之数据解析)
实战1,拉勾网爬取城市列表# # 实战7.爬取免费简历模板# import requests# from lxml import etree# if __name__ == "__main__":# url = 'https://sc.chinaz.com/'# header = {# 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like原创 2021-07-30 14:41:19 · 168 阅读 · 0 评论 -
python网络爬虫(第五章:实战6:xpath之数据解析)
xpath实战1.58同城二手房数据爬取import requests# 新版本的python中没有安装lxml,只安装了html包,因此,html按照etree用就行# 爬取58二手房import requestsfrom lxml import etreeif __name__ == "__main__": url = 'https://www.58.com/ershoufang/' header = { 'User-Agent':'Mozilla/5.0 (原创 2021-07-29 22:48:30 · 281 阅读 · 0 评论 -
python网络爬虫(第五章:xpath之数据解析)
学习文档:https://book.apeland.cn/details/66/xpath解析xpath解析:最常见且最便捷高效的一种解析方式,通用性强。xpath解析原理1.实例化一个etree的对象,且需要将解析的页面源码数据加载到etree对象中2.调用etree对象中的xpath方法,并结合xpath表达式实现标签的定位和内容的捕获。环境的安装pip install lxml如何实例化一个etree对象1.将本地的html文档中的源码数据加载到etree对象中: etree.原创 2021-07-29 15:13:11 · 303 阅读 · 0 评论 -
python网络爬虫(第五章:实战5:bs4之数据解析)
实战1. 爬取三国演义小说所有章节标题和章节内容原创 2021-07-29 10:07:56 · 135 阅读 · 0 评论 -
python网络爬虫(第五章:bs4之数据解析)
1.bs4数据解析数据解析的原理:1.标签定位 2.提取标签、标签属性中存储的数据值bs4数据解析的原理:1.实例化一个BeautifulSoup对象,并且将页面源码数据加载到该对象中2.通过调用BeautifulSoup对象中相关的属性或者方法进行标签定位和数据提取。环境安装pip install bs4 pip install lxml或者PyCharm中的file—>Settings—>Project Interpreter—>点击【+】—>分别输入bs4原创 2021-07-28 19:31:27 · 267 阅读 · 0 评论 -
python网络爬虫(第五章:实战4:正则表达式之数据解析)
2.1正则表达式查询:https://docs.python.org/2/howto/regex.html正则表达式又称规则表达式,简称“re”,#糗图百科之实战案例import reimport requestsimport osif __name__ == "__main__": #创建文件夹 if not os.path.exists('./qiutulibs'): os.mkdir('./qiutulibs') url = 'https://w原创 2021-07-28 17:02:28 · 125 阅读 · 0 评论 -
python网络爬虫(第五章:数据解析)
聚焦爬虫:爬取页面中指定的页面内容编码流程:1.指定url2.发送请求3.获取响应数据4.数据解析5.持久化存储数据解析原理概述:解析的局部的文本内容都会在标签之间或者标签对应的属性中进行存储。数据解析步骤:1.进行指定标签的定位2.标签或者标签对应的属性中存储的数据值进行提取(解析)案例:网页解析#糗图百科之实战案例import requestsif __name__ == "__main__": url = 'https://pic.qiushibaike.原创 2021-07-28 12:14:12 · 584 阅读 · 0 评论 -
python网络爬虫(第四章 实战3)
pycharm中批量添加单引号1.快捷键【Ctrl+R】调出正则,然后点击2.第一行输入【(.?): (.?)\n】3.第二行输入【(.?): (.?)\n】3.快捷键【Shift+Tab】,左对齐4.选择【Replace All】实战1.爬取搜狗指定词条对应的搜索结果页面# 爬取搜狗指定词条对应的搜索结果页面#UA User-Agent:请求载体的身份标识#UA检测:门户网站的服务器会检测对应请求的载体身份标识,如果检测到请求的载体身份标识为某一款浏览器,说明该请求是一个正常请求。原创 2021-07-28 09:33:08 · 451 阅读 · 1 评论 -
python网络爬虫(第四章 实战2:需求:爬取搜狗首页的页面数据)
# 需求:抓取搜狗首页的页面数据import requestsif __name__ == "__main__": #1.指定url url = 'https://www.sogou.com/' #2.发送请求 response = requests.get(url=url) #3.获取响应数据 text返回的是字符串形式的响应数据 page_text = response.text print(page_text) # 4.持久化存.原创 2021-07-25 21:17:34 · 360 阅读 · 1 评论 -
python网络爬虫(第四章 爬取网页数据)
爬取网页数据流程:步骤1.指定url步骤2.发送请求步骤3.获取响应数据步骤4.持久化存储1.requests模块1.urllib模块2.requests模块作用:模拟浏览器发请求requests模块的编码流程步骤1.指定url步骤2.发送请求步骤3.获取响应数据步骤4.持久化存储环境安装:cmd—>pip install reque...原创 2021-07-25 21:11:00 · 237 阅读 · 0 评论 -
python网络爬虫(第三章 实战1:HTTP抓包工具Fiddler的安装)
1.FiddlerFiddler是位于客户端和服务器端的HTTP代理,也是目前最常用的http抓包工具之一 。 它能够记录客户端和服务器之间的所有 HTTP请求,可以针对特定的HTTP请求,分析请求数据、设置断点、调试web应用、修改请求的数据,甚至可以修改服务器返回的数据,功能非常强大,是web调试的利器。工作原理:Fiddler是以代理网络服务器的形式进行工作,其代理地址为127.0.0.1,端口:8888。当Fiddler启动时回自动设置代理,退出时回自动注销代理,这样就不会影响其他程序。原创 2021-07-25 12:14:18 · 362 阅读 · 2 评论 -
python网络爬虫(第三章 网页请求原理)
1.浏览网页过程域名系统(Domain Name System,DNS)步骤1.浏览器通过DNS服务器查找域名对应的IP地址。步骤2.向IP地址对应的Web服务器发送请求。步骤3.Web服务器响应请求,发回HTML页面。步骤4.浏览器解析HTML内容,并显示出来。2.统一资源定位符统一资源定位符(Uniform Resource Locator,URL)是互联网上标准资源的地址。URL包括:协议头、服务器地址和文件路径2.1协议头协议头(Protocol Head)指:指定使用的传输协原创 2021-07-25 09:16:12 · 593 阅读 · 2 评论 -
python网络爬虫(第二章 爬虫的实现原理和技术)
第二章:爬虫的实现原理和技术1.爬虫实现原理2.爬虫爬取网页的详细流程1.爬虫实现原理聚焦爬虫还需解决:1.对爬取目标的描述或定义2.对网页或数据的分析或过滤3.对URL的搜索策略2.爬虫爬取网页的详细流程...原创 2021-07-24 11:01:57 · 725 阅读 · 3 评论 -
2021-7-11(第一章:初始爬虫)
第一章:初始爬虫1.大数据时代数据获取方式2.爬虫的概念3.爬虫的用途4.爬虫的分类4.1按照使用场景4.2按照爬取形式4.3按照爬取数据的存在形式1.大数据时代数据获取方式1.企业生产的数据2.数据平台购买的数据3.政府/机构提供的公开数据4.数据管理咨询公司的数据5.爬取的网络数据备注:参考:https://blog.csdn.net/weixin_33910759/article/details/886022422.爬虫的概念 **网络爬虫**(又被称为网页蜘蛛,网络机器人)就原创 2021-07-11 20:14:17 · 214 阅读 · 0 评论