私は入力としてURLを取る変数DOMAINを持っています。私はtxtファイルからURLのリストを一つずつフィードしたいのですが。Pythonのtxtから行ごとに変数への入力を受け入れる
マイtxtファイルは次のようになります。
www.yahoo.com
www.google.com
www.bing.com
私はこれをやっている:
with open('list.txt') as f:
content = f.readlines()
content = [x.strip() for x in content]
DOMAIN = content
しかし、可変ドメインはありません、別途、一度すべてのURLを取ります。 1つのURLを全体として、別のURLを別の操作で処理する必要があります。
このDOMAIN変数は、クロールのための治療に使用されます。コードベースの 一部:
from scrapy.selector import HtmlXPathSelector
from scrapy.spider import BaseSpider
from scrapy.http import Request
with open('list.txt') as f:
content = f.readlines()
# you may also want to remove whitespace characters like `\n` at the end of each line
content = [x.strip() for x in content]
DOMAIN = content
URL = 'http://%s' % DOMAIN
class MySpider(BaseSpider):
name = DOMAIN
allowed_domains = [DOMAIN]
start_urls = [
URL
]
エラー:単一のURLについて
scrapy.downloadermiddlewares.retry] DEBUG: Retrying <GET http://['www.google.com', 'www.yahoo.com', 'www.bing.com']>
executing as scrapy runspider spider.py
完全に動作するスクリプト---
from scrapy.selector import HtmlXPathSelector
from scrapy.spider import BaseSpider
from scrapy.http import Request
DOMAIN = 'google.com'
URL = 'http://%s' % DOMAIN
class MySpider(BaseSpider):
name = DOMAIN
allowed_domains = [DOMAIN]
start_urls = [
URL
]
def parse(self, response):
hxs = HtmlXPathSelector(response)
for url in hxs.select('//a/@href').extract():
if not (url.startswith('http://') or url.startswith('https://')):
url= URL + url
print url
yield Request(url, callback=self.parse)
私は実際にエラーを出しています。明確にするために、私は合計スクリプトをアップロードしています – user7423959