最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • 盘点Scrapy爬虫容易忽视的点

    正文概述    2020-02-22   232

    盘点Scrapy爬虫容易忽视的点

    scrapy爬虫注意事项

    一、item数据只有最后一条

    这种情况一般存在于对标签进行遍历时,将item对象放置在了for循环的外部。解决方式:将item放置在for循环里面。

    盘点Scrapy爬虫容易忽视的点

    二、item字段传递后错误,混乱

    有时候会遇到这样的情况,item传递几次之后,发现不同页面的数据被混乱的组合在了一起。这种情况一般存在于item的传递过程中,没有使用深拷贝。解决方式:使用深拷贝来传递item。

    盘点Scrapy爬虫容易忽视的点

    三、对一个页面要进行两种或多种不同的解析

    这种情况一般出现在对同一页面有不同的解析要求时,但默认情况下只能得到第一个parse的结果。产生这个结果的原因是scrapy默认对拥有相同的url,相同的body以及相同的请求方法视为一个请求。解决方式:设置参数dont_filter='True'。

    盘点Scrapy爬虫容易忽视的点

    四、xpath中contains的使用

    这种情况一般出现在标签没有特定属性值但是文本中包含特定汉字的情况,当然也可以用来包含特定的属性值来使用(只不过有特定属性值的时候我也不会用contains了)。

    作者:村上春树

    书名:挪威的森林

    以上面这两个标签为例(自行F12查看),两个span标签没有特定的属性值,但里面一个包含作者,一个包含书名,就可以考虑使用contains来进行提取。

    盘点Scrapy爬虫容易忽视的点

    相关推荐:《Python视频教程》

    五、提取不在标签中的文本

    有时候会遇到这样的情况,文本在两个标签之间,但不属于这两个标签的任何一个。此时可以考虑使用xpath的contains和following共同协助完成任务。

    示例:

    作者:

    "村上春树"

    书名

    "挪威的森林" 

    盘点Scrapy爬虫容易忽视的点

    六、使用css、xpath提取倒数第n个标签

    对于很多页面,标签的数量有时候无法保证是一致的。如果用正向的下标进行提取,很可能出现数组越界的情况。这种时候可以考虑反向提取,必要时加一些判断。 

    盘点Scrapy爬虫容易忽视的点

    七、提取表格信息

    其实对于信息抓取,很多时候我们需要对表格页面进行抓取。一般的方方正正的表格提取相对简单,这里不讨论。只说下含有合并单元格的情况。

    以这个网页的表格为例,定义5个字段批次,招生代码,专业,招生数量以及费用,注意到合并单元格的标签里有个rowspan属性,可以用来辨识出有几行被合并。我的思路是有多少行数据,就将batch批次扩展到多少个,形成一个新的列表,然后进行遍历提取数据。

    盘点Scrapy爬虫容易忽视的点

    八、模拟登陆

    当页面数据需要登陆进行抓取时,就需要模拟登陆了。常见的方式有:使用登陆后的cookie来抓取数据;发送表单数据进行登陆;使用自动化测试工具登陆,比如selenium配合chrome、firefox等,不过听说selenium不再更新,也可以使用chrome的无头模式。鉴于自动化测试的抓取效率比较低,而且我确实很久没使用过这个了。本次只讨论使用cookie和发送表单两种方式来模拟登陆。

    使用cookie

    使用cookie的方式比较简单,基本思路就是登陆后用抓包工具或者类似chrome的F12调试界面查看cookie值,发送请求时带上cookie值即可。

    盘点Scrapy爬虫容易忽视的点

    发送表单方式进行登陆

    cookie是有有效期的,对于大量数据的抓取,更好的方式是发送表单进行模拟登陆。scrapy有专门的函数scrapy.FormRequest()用来处理表单提交。网上有些人说cookie没法保持,可以考虑用我下面的方式。

    盘点Scrapy爬虫容易忽视的点


    起源地下载网 » 盘点Scrapy爬虫容易忽视的点

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元