ms2

#

准备:
robots
UA  池
图片懒加载
cookie
IP
ajax
js 加密(js逆向  字体加密/大众点评/  base64 md5 AES python复写 要不就是第三方库执行js代码)
验证码  云打码/超级鹰/极验缺口操作


模拟浏览器 -- selenium  动作链 -- chrome无头

解析工具 -- xpath bs4 正则 pyquery

抓包工具 -- fiddler mitproxy

测试工具 -- postman

ua  手机端
app text/plain


scrapy -基础-
    scrapy startproject name
    cd  name
    scrapy genspider sname xxx.com
    scrapy crawl sname
- 全量数据获取  -   链接提取器/规则解析器
    scrapy startproject name
    cd  name
    scrapy genspider -t crawl spi xxx.com  # 基于CrawlSpider类
    scrapy crawl spi

基于终端指令的 // scrapy crawl first -o qiubai.csv   #指定文件类型有要求.json .csv
基于管道的    // 定义管道类   注册管道类 不同管道类之间return item


# 爬虫:   发请求,解析数据
    #将url封装请求对象,引擎,调度器(过滤器(去重) 队列(容器 过滤后的请求对象)) 先进先出 引擎 下载器 引擎 spider.response 解析数据 引擎 管道 持久化
# 管道:   接收item,
# 调度器:
# 下载器: 去互联网请求    
#     下载中间件作用:拦截请求和响应
#       -拦截请求:
#         1 篡改请求头UA UA池,随机random.choice()
#         2 设置相关请求对象的代理IP(process_exception中)
# 引擎(核心): 数据流处理,处理事务
# POST请求的发送:
#   重写def start_requests(self):
#       yield scrapy.FormRequest(url,callback,formdata)
#   scrapy 默认是自己处理cookie的, settings.py里面COOKIES_ENNABLE=False
# # 日志等级
#   settings.py 里面 LOG_LEVEL='ERROR'
# # 日志路径
#   settings.py 里面 LOG_FILE = 'path'
# # 请求传参的应用场景:
#   爬取和解析的数据不在同一张页面上面
#   在请求方法中使用meta(字典)参数,该字典会传递参数给回调函数
#     回调函数接收meta:response.meta['key']
settings.py 里面
LOG_LEVEL = ERROR
ROBOTSTXT_OBEY = False
USER_AGENT = 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.81 Safari/537.36'
ITEM_PIPELINES = {
   
}

 

posted @ 2019-07-25 21:54  追风zz  阅读(322)  评论(0编辑  收藏  举报