随笔分类 - scrapy
摘要:python windows 下设置文件锁、多线程
阅读全文
摘要:在爬虫的时候接受的request.url本来是中文的,但是代码中接收到的是带有很多%的乱码,需要解码得到中文的内容: 原本下载这个文件的get请求是: http://www.shclearing.com/wcm/shch/pages/client/download/download.jsp?File
阅读全文
摘要:深度优先是指网络爬虫会从起始页开始,一个链接一个链接跟踪下去,处理完这条线路之后再转入下一个起始页,继续追踪链接 广度优先,有人也叫宽度优先,是指将新下载网页发现的链接直接插入到待抓取URL队列的末尾,也就是指网络爬虫会先抓取起始页中的所有网页,然后在选择其中的一个连接网页,继续抓取在此网页中链接的
阅读全文
摘要:项目中单机使用shell脚本进行多个scrapy命令的运行,即同个shell进行多个scrapy命令的执行,这样会大大提高爬取效率,好好利用CPU使用率 在shell命令行一次执行多个scrapy命令,可以有三种方式: (一)每个命令之间用 ; 隔开 scrapy crawl a;scrapy cr
阅读全文
摘要:问题:想在启动scrapy后重复爬取某一天的数据,但是爬取之前需要删除掉之前的旧数据,在哪里实现删除呢? 可以在pipeline的open_spider(self,spider)中删除,则在爬虫启动的时候会删除。 以下是pipelines.py 文件 # -*- coding: utf-8 -*-
阅读全文
摘要:proxies的格式是一个字典:{‘http’: ‘http://42.84.226.65:8888‘} 有http与https两种,在爬取不同网站时我们需要选用不同类型的网站时选用不同的proxise,在不知道网站类型时可以将两种类型均放进去,requests会自动选择合适的 proxies =
阅读全文
摘要:现在要访问一个目标地址是http的地址:http://icanhazip.com/,这个地址可以获取机器的外网ip理论上,由于上述地址是http的,所以使用http代理会通过代理访问该地址,即res =requests.get('http://icanhazip.com/', proxies={'h
阅读全文
摘要:在使用scrapy抓取数据的时候使用了代理IP,难免会遇到代理IP失效的情况。 因为对数据完整性要求较高,请问如何设置只要没有成功的返回response则把任务重新放进Request队列中去继续爬取? 可以使用scrapy自带的 scrapy.downloadermiddlewares.retry.
阅读全文
摘要:在spiders文件同级建立一个commands文件夹,建立一个py文件,我自定义为crawlall.py。 from scrapy.commands import ScrapyCommand class Command(ScrapyCommand): requires_project = True
阅读全文
摘要:from scrapy import signals # 此为官方推荐的信号使用方法,用来关闭浏览器 @classmethod def from_crawler(cls, crawler, *args, **kwargs): spider = super(YourSpider, cls).from_
阅读全文
摘要:在用scrapy写爬虫的时候,在settings中设定了自定义的变量 KEW_WORDS 但是在爬虫模块要使用get_project_settings 方法调用此参数day_num时,结果为空值NoneType,没有将参数调用过来 原因: 在settings中引用了爬虫模块中的类,导致爬虫模块提前被
阅读全文
摘要:有时为了测试xpath,需要临时下载个页面,这时使用命令行进行测试是最方便的,但是很多网站页面需要认证,不能直接使用scrapy shell命令进行页面的抓取,所以需要重新对请求进行构造,设置cookies和headers。首先在当前装有scrapy的python环境中安装ipython # pyt
阅读全文
摘要:scrapy shell 命令请求网页: scrapy shell "https://www.baidu.com" 就会得到请求的网页源代码,我们通过response.text可以获取请求之后的源代码,然后就可以通过正则匹配我们想要的内容 2.然后上面请求方法,对一些不做限制的网站请求时ok,但是就
阅读全文
摘要:在用scrapy做爬虫的时候,需要将数据存入的es中。网上找了两种方法,照葫芦画瓢也能出来,暂记下来: 首先安装了es,版本是5.6.1的较早版本 用pip安装与es版本相对的es相关包 pip install elasticsearch-dsl==5.1.0 方法一: 以下是pipelines.p
阅读全文
摘要:1 创建项目命令 # 可以在创建的时候指定项目所在的目录,myproject是项目名 scrapy startproject myproject [project_dir] 这将在project_dir目录下创建一个Scrapy项目。如果project_dir没有指定,project_dir将与my
阅读全文
摘要:需求现状:需要写一个脚本,脚本内封装了一些python脚本调用 示例说明:要在Linux平台写一个shell脚本,然后crontab定时调用。脚本内容是执行scrapy爬虫 #!/bin/sh source /etc/profile source ~/.bash_profile cd /www/ab
阅读全文
摘要:# -*- coding: utf-8 -*- # Scrapy settings for maoyan project # # For simplicity, this file contains only settings considered important or # commonly u
阅读全文
摘要:怎么样将scrapy每个模块的打印信息输出到同一个日志文件中? 1、知识点 """ logging : scrapy: settings中设置LOG_LEVEL="WARNING" settings中设置LOG_FILE="./log.log" #设置日志保存的位置,设置后在终端不会显示日志内容 i
阅读全文
摘要:我在使用python写爬虫时用到了requests.get()方法: def openUrl(url, ip, agent): #函数形参为url:网页地址; ip:ip池; agent:User-Agent, 三者均为字符串类型 requests.get(url, headers=agent, p
阅读全文
摘要:问题:scrapy爬虫在win本地和在linux的非root用户下都能够使用scrapy crawl crawlername,并且能够成功爬取,但是在linux中,使用crongtab -e 添加定时任务后,总是会在日志中报错:/home/apps/start_ratespider.sh:行5: s
阅读全文

浙公网安备 33010602011771号