0

次のように、url.txt というテキスト ファイルに 200 個の URL を入れます。

url_1
url_2
url_3
....
url_n

そして、Pythonでそれらすべてを調べて、各URLのページ(テキスト)のコンテンツを取得したいと考えています。このテキスト ファイルから各 URL を調べる最も簡単な方法は何ですか? スクレイピー?それとも別のスクリプトを書くだけですか?

import urllib
from bs4 import BeautifulSoup as BS

html =urllib.urlopen('url').read()

soup = BS(html)


print soup.find('div',{'class':'drkgry'})[1].get_text()
4

2 に答える 2

1

非常に高速にクロールしたり (非同期の性質のため)、リンクをたどったり、多くのフィールドを抽出したりしない限り、Scrapy はこのタスクには過剰かもしれません。

このためのクモは次のようになります

from scrapy.http import Request
from scrapy.selector import HtmlXPathSelector
from scrapy.spider import BaseSpider


class MySpider(BaseSpider):
    name = 'myspider'

    def start_requests(self):
        with open('urls.txt') as fp:
            for line in fp:
                yield Request(line.strip(), callback=self.parse_website)

    def parse_website(self, response):
        hxs = HtmlXPathSelector(response)
        print hxs.select('//div[@class="drkgry"]/text()').extract()

完全なプロジェクトの作成をスキップできます。名前を付けて保存し、ファイルを同じディレクトリに置いてmyspider.py実行します。scrapy runspider myspider.pyurls.txt

于 2013-10-14T12:57:22.453 に答える