python爬虫
我思想出了问题
这个作者很懒,什么都没留下…
展开
-
爬虫问题——2020.10.16 Request url must be str or unicode, got NoneType:
问题描述1.使用scrapy框架进行爬取图片时,用xpath解析打印获取的img的src属性值为none type,scrapy crawl 运行爬虫脚本时报错:Request url must be str or unicode, got NoneType:2.换了一种方式:用requests模块进行请求,用xpath 进行解析,打印img的src属性值,有一些属性值可以正常输出,但还是出现了错误,如下:分析:查看了网页源码,src属性值得架构都是一样的,并都有这个属性值。暂未发现原因。...原创 2020-11-11 16:56:32 · 1662 阅读 · 0 评论 -
爬虫——2020.10.11 CrawlSpider使用
CrawlSpider:是一个类,Spider的一个子类。专门用作于全站数据爬取。也就是说,我们创建的爬虫文件中,父类是CrawlSpider。使用方法:1.创建一个工程2.cd 到工程目录下3.创建爬虫文件(CrawlSpider):scrapy genspider -t crawl name ww.xxx.com4.链接提取器:根据指定的规则(allow:正则表达式)进行指定链接的提取。5.规则解析器:将链接提取器提取到的链接进行指定规则(callback)的解析操作。follw=True原创 2020-11-11 16:56:11 · 135 阅读 · 0 评论 -
爬虫——2020.10.11 scrapy下载中间件
中间件:下载中间件:使用下载中间件时,要记得开启下载中间件,在配置文件中:DOWNLOADER_MIDDLEWARES。操作文件位置在中间件中的下载中间件类中。位置:引擎和下载器之间作用:批量拦截到整个工程中所有的请求和响应拦截请求:(1)请求头信息中有UA信息,进行UA伪装:封装一个UA列表,在拦截请求后随机进行选取UA信息。(2)代理IP设定:代理操作一般写在拦截异常中。同样先封装好代理池,分为http,https两种。设定判断条件,然后进行随机选择,最后将修改好的请求进行返回原创 2020-11-11 16:56:03 · 112 阅读 · 0 评论 -
爬虫——2020.10.10 scrapy图片数据爬取
文章目录图片数据爬取:ImagePipelineImagePipeline:使用流程:图片数据爬取:ImagePipeline基于scrapy爬取字符串类型的数据和爬取图片类型的数据区别:字符串:只需基于xpath解析出并提交给管道进行持久化存储。图片:xpath解析出图片src的属性值,单独的对图片地址进行请求,然后获取图片二进制类型的数据。ImagePipeline:只需将img的src属性值进行解析,提交到管道,管道就会对图片的src进行请求发送获取图片的二进制数据,并进行持久化存储。原创 2020-11-11 16:55:55 · 133 阅读 · 0 评论 -
爬虫——2020.10.10 scrapy请求传参
请求传参:使用场景:爬取的数据不在同一页面中。也就是说爬取的目标可能在详情url中,即深度爬取。例子:1.第一步:实现方法:重写一个解析详情页的parse方法,在原始parse方法下,手动进行请求发送中,加入meta参数,即可将item传递给解析详情页的parse方法。就是将不同页面解析返回的item封装到同一个item中。yield scrapy.Request(detail_url,callback=self.detail_parse,meta={'item':item})2.第二步原创 2020-11-11 16:55:45 · 153 阅读 · 0 评论 -
爬虫——2020.10.9 scrapy五大核心组件
scrapy五大核心组件:引擎:用来处理整个系统的数据流,触发事务(框架核心)调度器:用来接受引擎发过来的请求,压入队列中,并在引擎中再次请求时返回,可以想象成一个URL的优先队列,由他来决定下一个要抓取的是什么,同时去除重复的网址下载器:用于下载网页内容,并将网页内容返回给蜘蛛(scrapy下载器是建立在twisted这个高效的异步模型上的)爬虫:爬虫是主要干活的,用于从特定网页中提取自己需要的信息,即所谓的实体(item)。用户也可以从中提取出链接,让scrapy继续抓取下一个页面项目管道原创 2020-11-11 16:55:36 · 337 阅读 · 0 评论 -
爬虫——2020.10.9 scrapy全站爬取
scrapy全站爬取:含义:就是将网站中某板块下的全部页码对应的页面数据进行爬取。实现方式:(1)将所有页面的url添加到start_url列表中(不推荐)(2)手动进行请求发送(推荐):callback回调函数专门用作于数据解析。yield scrapy.Request(url=new_url,callback=self.parse)...原创 2020-11-11 16:55:27 · 83 阅读 · 0 评论 -
爬虫——2020.10.08 scrapy框架基本使用
文章目录scrapy框架基本概念:scrapy框架基本使用:scrapy框架基本概念:框架:就是一个集成了很多功能并且具有很强通用性的的一个项目模板。学习:学习其中封装好的各种功能的用法。scrapy:爬虫中封装好的一个明星框架。具有高性能的持久化存储,异步数据下载,高性能的数据解析,分布式。环境配置:pip install scrapy。过程会安装一些依赖项。测试:在终端输入scrapy指令,没有报错即表示安装成功。scrapy框架基本使用:创建一个工程:scrapy startpr原创 2020-11-11 16:55:17 · 779 阅读 · 0 评论 -
爬虫——2020.10.7 selenium模块的基本使用
文章目录为什么使用selenium模块:selenium模块简介:selenium使用流程:为什么使用selenium模块:可以便捷的获取网站中动态加载的数据。便捷实现用户模拟登录。selenium模块简介:基于浏览器自动化的一个模块。selenium使用流程:1.环境安装:pip install selenium2.下载浏览器驱动程序。3.实例化一个浏览器对象,然后编写基于浏览器自动化的操作代码。from selenium import webdriverobj = webdrive原创 2020-11-11 16:55:04 · 65 阅读 · 0 评论 -
爬虫——2020-09-29聚焦爬虫---数据解析
聚焦爬虫编码流程:1.指定url2.发起请求3.获取响应数据4.数据解析5.持久化存储数据解析分类:正则bs4xpath:重点,通用性比较强数据解析概念:解析的局部的文本内容都会在标签之间或者标签对应的属性中存储1.进行指定标签的定位2.标签或者标签对应的属性中存储的数据值进行提取(解析)...原创 2020-11-11 16:54:51 · 162 阅读 · 0 评论 -
爬虫——2020.10.6 代理相关知识
代理:破解封IP的这种反爬机制。什么是代理:代理服务器。代理的作用:突破自身的IP访问限制,并隐藏自身的真实IP。代理相关的网站:(1)快代理(2)西祠代理(3)www.goubanjia.com代理IP类型:(1)http:应用到http协议对应封url中(2)https:应用到https协议对应的url中。代理IP的匿名度:(1)透明:服务器知道这次请求使用了代理,也知道请求对应的真实IP(2)匿名:知道使用了代理,但不知道真实IP(3)高匿:不知道使用了代理,更不知道真实原创 2020-11-11 16:54:39 · 91 阅读 · 0 评论 -
爬虫——2020.10.5 验证码识别+模拟登录
验证码识别:验证码的作用:反爬虫。他是动态的,用户每次发送请求,验证码都会刷新。爬取方式:通过第三方工具进行爬取;首先获取验证码的url,保存验证码图像到本地,然后利用第三方工具进行识别。为post请求类型,并且携带参数。response.status_code若响应的状态码为200,则表示请求成功。模拟登录:爬取基于某些用户的用户信息。点击登录按钮后会发起一个post请求。post请求中会携带登录之前录入的相关信息(用户名,密码,验证码等)。验证码在每次请求后都会变化。http/原创 2020-11-11 16:54:30 · 399 阅读 · 0 评论 -
爬虫——2020.10.4 xpath解析实例
案例一:xpath解析获取图片注意:解决中文乱码的问题。在获取响应数据后,进行手动编码:response.encoding = 'utf-8'对出现乱码的地方进行处理:img_name = img_name.encode('iso-8859-1').decode('gbk')注意爬取中使用xpath时,局部数据解析时目录,要写成 ./爬取一页的结果:import osimport requestsfrom lxml import etreeurl = 'http://pic.netb原创 2020-11-11 16:54:23 · 117 阅读 · 0 评论 -
爬虫——2020.10.3 xpath基础解析
xpath解析:最常用且最便捷高效的一种解析方式。通用性强。环境安装:pip install lxmlfrom lxml import etree原理实例化一个etree对象,且需要将被解析的源码页面数据加载到该对象中。调用etree对象中的xpath方法结合着xpath表达式实现标签的定位和捕获。实例化etree对象:(1)将本地的html文档中的源码数据加载到etree对象中:tree = etree.parse(filePath)(2)可以将从互联网上获取额源码数据加载到该对象中原创 2020-11-11 16:54:09 · 114 阅读 · 0 评论 -
爬虫——2020.9.30 bs4解析案例
爬取三国演义小说所有的章节及章节内容from bs4 import BeautifulSoupimport lxmlimport requestsif __name__ == "__main__": header = { 'User_Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36'原创 2020-11-11 16:54:01 · 129 阅读 · 0 评论 -
爬虫——2020.9.30 正则解析案例
正则解析爬取糗事百科中的某页所有糗图。import requestsimport reimport osif __name__ == "__main__": if not os.path.exists('./qiutuLibs'): os.mkdir('./qiutuLibs') url = "https://www.qiushibaike.com/imgrank/" headers = { 'User_Agent':'Mozilla/5.原创 2020-11-11 16:53:48 · 137 阅读 · 0 评论 -
爬虫——2020-9-28 requests实例(简易网页采集器)
requests实例UA检测:门户网站的服务器会检测对应请求的载体身份标识(user-agent),如果检测到请求的载体身份标识为某一款浏览器,说明该请求是正常的请求。但是,UA若不是基于某浏览器的,则表示该请求为不正常的请求(爬虫),则服务器端有可能会拒绝此次请求。UA伪装:让爬虫对应的请求载体标识伪装成某一款浏览器。将对应的UA封装到一个字典中1.简单的网页采集器:import requestsif __name__ == "__main__": #UA伪装:将对应的UA封装到一原创 2020-11-11 16:52:31 · 120 阅读 · 0 评论 -
爬虫——2020-9-29 requests实战之药监总局相关数据爬取
requests实战之药监总局相关数据爬取首先分析url的特点, 还有详情页面的url的特点分析请求的方式(ajax请求),respond的数据,要是json的话可以将json文件进行在线转译,看一下具体形式内容根据需要爬取的页面数量构建循环,搭建框架。注意requests.post()中参数(data)的形式,在原网页中观察。import requestsimport jsonif __name__ == "__main__": url = '写入url' headers原创 2020-11-11 16:52:07 · 542 阅读 · 0 评论 -
爬虫——2020-09-28 爬虫基础知识
爬虫基础知识:1.概念:通过编写程序,模拟浏览器上网,然后让其去互联网上抓取数据的过程。2.价值:大数据、数据分析(实际应用);爬虫工程师(就业)3.合法性:合法但存在风险(1)爬虫干扰了被访问网站的正常运行(2)爬虫抓取了受法律保护的特定类型的数据。4.爬虫在使用场景中分类:(1)通用爬虫:抓取系统重要组成部分。抓取的是互联网一整张页面数据。(2)聚焦爬虫:建立在通用爬虫基础之上。抓取页面中特定的局部内容。(3)增量式爬虫:检测网站中数据更新的情况。只会抓取网站最新更新的数据。5.反爬机原创 2020-11-11 16:51:18 · 150 阅读 · 0 评论