scrapy中间件 部署 日志


IP代理:

  1. 抓取网上免费代理,测试
  2. 代理供应商提供的代理(收费)
  3. ADSL拨号,每次重新拨号会更换本地IP,但是会有1~3秒延迟
  4. VPN/VPS 虚拟主机(翻墙爬取国外网站)
  5. Tor网络(暗网) 洋葱浏览器

自动生成user-agent

pip install fake_useragent
导入:
from fake_useragent import UserAgent

ua_obj = UserAgent()
ua_obj.ie
ua_obj.chrome
ua_obj.random

  1. 如果有重复图片、文件,保存到本地只有一份,后续改名只能成功一次,后面再改名。

  2. 用商品名称做为图片名保存,如果图片名里有”/”,则保存时会当作路径结点使用。
    file_name = “Huawei Mate20 Pro 8GB/128GB 月光灰”
    if “/” in file_name:
    file_name.replace(“/”, “-”)

模拟登陆:

  1. 直接发送账户密码的POST请求,记录cookie,再发送其他页面的请求
  2. 先发送登录页面的get请求,获取登录参数,再发送登录的post请求,提交账户密码和登录参数,并记录cookie,再发送其他页面的请求
  3. 直接将cookies保存在请求报头里,直接发送附带登录状态的请求,获取页面。

Scrapyd远程部署和执行爬虫、停止爬虫、监控爬虫运行状态

服务端:

  1. 安装客户端和服务器端的工具:
    端口: 6800
    客户端:pip install scrapyd-client
    服务器端:pip install scrapyd

  2. 服务器端开启scrapyd服务(提供一个监听6800端口的web)
    修改 default_scrapyd.conf 配置文件里的 bind_address 为 0.0.0.0
    再开启服务
    ubuntu: $ scrapyd

以下全部是客户端的操作:

  1. 修改scrapy项目的scrapy.cfg文件,添加 配置名称和url
    [deploy:scrapyd_Tencent3]
    url = http://192.168.37.80:6800

  2. 将项目部署到指定scrapyd服务器上(每次本地有任何变动,必须重新部署一次)
    scrapyd-deploy scrapyd_Tencent3 -p Tencent3

  3. 启动指定 scrapyd服务上的 指定项目的 指定爬虫(会生成该爬虫的jobid值,用于区分)
    curl http://192.168.37.80:6800/schedule.json -d project=Tencent3 -d spider=tencent_crawl

  4. 停止指定 scrapyd服务上的 指定项目的 指定爬虫
    curl http://192.168.37.80:6800/cancel.json -d project=Tencent3 -d job=jobid值

scrapyd-web