python-scrapy

日志:

import logging  # 使用python自带日志功能
logging.basicConfig(level=logging.WARNING,  
                    filename='./log/log.txt',  
                    filemode='w',  
                    format='%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s') 
logger = logging.getLogger(__name__)  简单输出当前文件名
logger.warning(e)

scrapy.Request:

yield scrapy.Request(
    url,
    [
        callback, method="GET", headers, body, cookies, meta, dont_filter=False
    ]
)

 

请求数据重复
请求传递item为同一个,多线程操作item会造成数据覆盖,可以使用deepcopy来修正

crawl spider
scrapy genspider -t crawl spider_name allow_domain

参数:

多个rules提取的url之间不能传递参数

allow:正则,先提取,后不提取(会自动补全url)

callback:处理响应的函数(不能定义parse函数,避免覆盖父类方法)

follow:请求后资源是否继续被筛选

deny:满足正则的url不被请求

process_links:指定该spider中哪个的函数将会被调用,从link_extractor中获取到链接列表时将会调用该函数。该方法主要用来过滤。

process_request:指定该spider中哪个的函数将会被调用, 该规则提取到每个request时都会调用该函数。 (用来过滤request)

 

 

 

downloadmiddleware:
添加代理ip:

reqeust.meta[‘proxy’] = ‘http://127.0.0.1:455’

pycharm发布代码
tools – deployment – sftp

Crontab 定时执行
安装:sudo apt-get install cron

配置:crontab -e

​ 分 小时 日 月 星期 命令

​ 0-59 0-23 1-31 1-12 0-6 command

查看:crontab -l

tail -f 1.log有输出就会展示

星期0表示周日

 

posted @ 2019-06-29 16:21  Alex-jiang  阅读(90)  评论(0)    收藏  举报