Слияние кода завершено, страница обновится автоматически
# -*- coding: utf-8 -*-
__author__ = 'lztkdr'
__date__ = '2019/7/21 9:17'
import os, sys,time
from scrapy.cmdline import execute
from GuaZi_Spider.items import CarItem
from utils import selenium_helper
from utils.pysql_helper import sql_helper
sys.path.append(os.path.dirname(os.path.abspath(__file__)))
# driver = selenium_helper.get_driver("http://httpbin.org/get",proxyHost="47.106.192.167:8000",autoOpenDevTools=True,device_type= selenium_helper.deviceType.PC,driver_type=selenium_helper.driverType.Firefox)
#
# time.sleep(60)
#
# driver.close()
#启动的爬虫名称
"""
SPIDER_NAME 注释其中一个,以便 运行 不同 scrapy 模板 的爬取方式。
guazi 实现以 输入关键字 进行爬取,目前 关键字 代码中写的固定,可以取消注释; 可以更改 构造函数中 mode 的值,以调整使用 scrapy 或者 scrapy+selenium 爬取。
更换成自己的代理:见 proxy.png
mysql数据库连接 见:settings.py 底部。
"""
SPIDER_NAME = "guazi"
SPIDER_NAME = "guazi_crawl"
SPIDER_NAME = "guazi_redis"
# SPIDER_NAME = "guazi_redis_crawl" # 该爬取方式的分布式,启动运行时,可能会导致出现 [WinError 10054] 远程主机强迫关闭了一个现有的连接。 可能是因为redis装在 windows 上的原因,redis 容易挂掉。
#执行scrapy命令行
execute(["scrapy", "crawl", SPIDER_NAME])
# split 传参写法:
# execute(f"scrapy crawl {SPIDER_NAME}".split())
# redis 命令:
# select 1
# lpush guazi_redis:start_urls "https://www.guazi.com/www/buy"
# select 1
# lpush guazi_redis_crawl:start_urls "https://www.guazi.com/www/buy"
# scrapy-redis 分布式,实践总结:
# 1. 带密码的redis连接字符串,写法:redis://[:password]@localhost:6379/0 ,密码前面要加上英文冒号,不然会报:redis.exceptions.AuthenticationError: Authentication required.
# 2. 如果用了带密码的redis,bloomfilter.py 文件中,redis.ConnectionPool 的地方,记得得传入redis密码。
# 3. RedisCrawlSpider 类型的爬虫,好像在启动后大量与redis交互,windows下的redis服务会自动断掉,然后程序会报异常,linux下的暂没试过。
# 4. RedisSpider类型的爬虫,没什么大问题,可以正常运行起来。
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )