簡體   English   中英

Scrapy-在爬網時訪問數據並隨機更改用戶代理

[英]Scrapy - access data while crawling and randomly change user agent

當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') 

您沒有義務將收集到的項目(也稱為“數據”)輸出到csv文件中,只能使用以下命令進行抓取:

scrapy crawl myspider

這會將日志輸出到終端,但是為了將項目僅存儲到csv文件中,我假設您正在執行以下操作:

scrapy crawl myspider -o items.csv

現在,如果您要存儲日志和項目,建議您將其放入settings.py文件中:

LOG_FILE = "logfile.log"

現在,您可以在Spider運行時僅查看該文件的情況下看到一些東西。

對於您對randomuseragent的問題,請檢查如何激活易用的中間件

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM