抓取时抓取访问数据并随机更改用户代理

2024-09-27 23:17:37 发布

您现在位置:Python中文网/ 问答频道 /正文

有没有可能在scrapy爬行时访问数据?我有一个脚本,可以找到一个特定的关键字,并在.csv中写入关键字以及找到它的链接。但是,我必须等待scrapy完成爬行,当完成后,它实际上会输出.csv文件中的数据

我也在尝试随机更改我的用户代理,但它不起作用。 如果不允许我同时回答两个问题,我会把这个问题作为一个单独的问题发表。

#!/usr/bin/env python # -*- coding: utf-8 -*- from scrapy.spiders import Spider from scrapy import log from FinalSpider.items import Page from FinalSpider.settings import USER_AGENT_LIST from FinalSpider.settings import DOWNLOADER_MIDDLEWARES import random import telnetlib import time class FinalSpider(Spider): name = "FinalSpider" allowed_domains = ['url.com'] start_urls = ['url.com=%d' %(n) for n in xrange(62L, 62L)] def parse(self, response): item = Page() item['URL'] = response.url item['Stake'] = ''.join(response.xpath('//div[@class="class"]//span[@class="class" or @class="class"]/text()').extract()) if item['cur'] in [u'50,00', u'100,00']: return item # 30% useragent change class RandomUserAgentMiddleware(object): def process_request(self, request, spider): if random.choice(xrange(1,100)) <= 30: log.msg('Changing UserAgent') ua = random.choice(USER_AGENT_LIST) if ua: request.headers.setdefault('User-Agent', ua) log.msg('>>>> UserAgent changed')

Tags: 数据fromimportlogurlifresponserequest
1条回答
网友
1楼 · 发布于 2024-09-27 23:17:37

您没有义务将收集的项目(也称为“数据”)输出到csv文件中,您只能使用以下内容运行scrapy:

scrapy crawl myspider

这将把日志输出到终端,但为了只将项目存储到csv文件中,我假设您正在执行以下操作:

^{pr2}$

现在,如果您想存储日志和项目,我建议您将其放入您的settings.py文件中:

LOG_FILE = "logfile.log"

现在你可以看到一些东西,而蜘蛛运行只是检查文件。在

对于randomuseragent的问题,请检查如何激活scrapy middlewares。在

相关问题 更多 >

    热门问题