随笔分类 - Scrapy(python)
爬虫相关的资料
摘要:对于scrpay乱码的数据,刚开始在settings.py中配置了FEED_EXPORT_ENCODING = 'utf-8',发现还是不起作用, 于是想到了中间件,在请求返回的时候,对返回的内容进行转码处理 def process_response(self, request, response,
阅读全文
摘要:一直用xpath提取网页数据,有些文章嵌入一些图片 a标签等,一般的通用做法是用【正则】去除,可是也很难满足要求, 尤其是要提取的内容跟图片和a标签在相同的标签里 如上图,都在p标签里,不管是内容还是图片,这时用正则也不是很灵活,现在办法是通过提取到文章主体部分,然后依次遍历每个段落, div_li
阅读全文
摘要:一直使用xpath和css提取数据,但是有些时候需要处理一些数字,使用正则相对来说更简单些 比如 只想提取a标签里的245,用xpath和css还需要特殊处理 1 page_list = response.xpath( 2 '//div[@class="paging_content"]/div[@c
阅读全文
摘要:之前处理超时异常时都在downloadmiddleware中处理,但是总感觉很费劲 今天查文档发现可在errback回调中处理 from scrapy.spidermiddlewares.httperror import HttpError from twisted.internet.error i
阅读全文
摘要:1 mport zlib 2 import pymongo 3 4 def compress_html(infile,dst,level=9): 5 '''[summary] 6 7 [压缩文件] 8 Arguments: 9 infile {[string]} -- [输入文件路径] 10 dst
阅读全文
摘要:有段时间没怎么使用scrapy了,最近采集一个网页,发现网页编码是gb2312, 一开始就取搜索了下,发现各种操作都有,有在settings中设置 # FEED_EXPORT_ENCODING = 'utf-8'FEED_EXPORT_ENCODING = 'GB2312' 有在spider中设置r
阅读全文
摘要:大家在做爬虫采集数据的时候很多都会遇到增量采集的问题,有些时候是通过过滤url来进行的,有些是通过爬取网页后再进行分析判断, 以上这些过程也许大部分做爬虫的都会这么做,各位有没有想过, 除了以上的常用的方式还有没有其他的能够可以一次性批量获取先要的url连接地址呢? 自己做爬虫也有很多年了,前不久听
阅读全文
摘要:在做新闻或者其它文章采集到时候,只想采集最新发布的信息,之前采集过得就不要再采集了,从而达到增量采集到需求 scrapy-deltafetch,是一个用于解决爬虫去重问题的第三方插件。 scrapy-deltafetch通过Berkeley DB来记录爬虫每次爬取收集的request和item,当重
阅读全文
摘要:url_list = ["http://www.icoat.cc/news/list_18_3.html", "http://www.icoat.cc/news/list_18.html", "http://www.icoat.cc/news/list_18_2.html", ] for ls in
阅读全文
摘要:scrapy是一个Python爬虫框架。我们自己用requests也能写爬虫(GET某个URL,然后Parse网页的内容),那么,问题来了,scrapy高明在哪些地方呢?下面就来讨论下这个话题,看看业界通用的爬虫是怎么设计的。 从[1]可得scrapy架构图。它由5个核心模块组成。 5个模块功能 (
阅读全文
摘要:在scrapy提交一个链接请求是用 Request(url,callback=func) 这种形式的,而parse只有一个response参数,如果自定义一个有多参数的parse可以考虑用下面的方法实现多个参数传递。 def parse(self,response): yield Request(u
阅读全文
摘要:1:在spider中返回一个自定义的字典,老版本中需要先定义一个Item,填充后再返回一个对象 新版本中可以直接返回一个字典 2:Per-spider settings 为每个spider进行单独设置,以前只能在settings文件中设置,在settings中的设置是全局的会作用到每个spider,
阅读全文
摘要:在settings.py里面配置pipeline,这里的配置的pipeline会作用于所有的spider,我们可以为每一个spider配置不同的pipeline, 设置 Spider 的 custom_settings对象属性 class UserInfoSpider(CrawlSpider): #
阅读全文
摘要:处理scrapy中包括多个pipeline时如何让spider执行制定的pipeline管道1:创建一个装饰器from scrapy.exceptions import DropItemimport functools'''当有多个pipeline时,判断spider如何执行指定的管道''' def
阅读全文
摘要:最近使用Python的过程中遇到了一些坑,例如用datetime.datetime.now()这个可变对象作为函数的默认参数,模块循环依赖等等。 在此记录一下,方便以后查询和补充。 避免可变对象作为默认参数 在使用函数的过程中,经常会涉及默认参数。在Python中,当使用可变对象作为默认参数的时候,
阅读全文
摘要:最近用Scrapy写爬虫,将爬取的数据存入Mongodb中,使用的是pymongo这个库,但是运行的时候报错如标题所示 搜了好多网站包括stackoverflow都没有解决,后来发现自己用的是虚拟环境下的python,于是切换到虚拟环境目录并激活然后在运行就正常了.
阅读全文
摘要:import scrapy from myproject.items import MyItem class MySpider(scrapy.Spider): name = 'example.com' allowed_domains = ['example.com'] start_urls = [
阅读全文

浙公网安备 33010602011771号