scrapy中间件 部署 日志
IP代理:
- 抓取网上免费代理,测试
- 代理供应商提供的代理(收费)
- ADSL拨号,每次重新拨号会更换本地IP,但是会有1~3秒延迟
- VPN/VPS 虚拟主机(翻墙爬取国外网站)
- Tor网络(暗网) 洋葱浏览器
自动生成user-agent
pip install fake_useragent
导入
:
from fake_useragent import UserAgent
ua_obj = UserAgent()
ua_obj.ie
ua_obj.chrome
ua_obj.random
-
如果有重复图片、文件,保存到本地只有一份,后续改名只能成功一次,后面再改名。
-
用商品名称做为图片名保存,如果图片名里有”/”,则保存时会当作路径结点使用。
file_name = “Huawei Mate20 Pro 8GB/128GB 月光灰”
if “/” in file_name:
file_name.replace(“/”, “-”)
模拟登陆:
- 直接发送账户密码的POST请求,记录cookie,再发送其他页面的请求
- 先发送登录页面的get请求,获取登录参数,再发送登录的post请求,提交账户密码和登录参数,并记录cookie,再发送其他页面的请求
- 直接将cookies保存在请求报头里,直接发送附带登录状态的请求,获取页面。
Scrapyd远程部署和执行爬虫、停止爬虫、监控爬虫运行状态
服务端:
-
安装客户端和服务器端的工具:
端口:6800
客户端:pip install scrapyd-client
服务器端:pip install scrapyd
-
服务器端开启
scrapyd
服务(提供一个监听6800端口的web)
修改default_scrapyd.conf
配置文件里的 bind_address 为 0.0.0.0
再开启服务
ubuntu: $ scrapyd
以下全部是客户端的操作:
-
修改scrapy项目的
scrapy.cfg
文件,添加 配置名称和url
[deploy:scrapyd_Tencent3]
url = http://192.168.37.80:6800 -
将项目部署到指定scrapyd服务器上(每次本地有任何变动,必须重新部署一次)
scrapyd-deploy scrapyd_Tencent3 -p Tencent3 -
启动指定 scrapyd服务上的 指定项目的 指定爬虫(会生成该爬虫的jobid值,用于区分)
curl http://192.168.37.80:6800/schedule.json -d project=Tencent3 -d spider=tencent_crawl -
停止指定 scrapyd服务上的 指定项目的 指定爬虫
curl http://192.168.37.80:6800/cancel.json -d project=Tencent3 -d job=jobid值
scrapyd-web