我将200个网址放在一个名为url.txt的文本文件中,如下所示:
url_1
url_2
url_3
....
url_n
我想在python中浏览所有这些内容以获取每个网址页面(文本)的内容。从这个文本文件中查看每个URL的最简单方法是什么? scrapy?或者只是写另一个脚本?
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()
答案 0 :(得分:2)
这看起来很简单 - 这就是你要找的吗?
import urllib2
with open('MyFileOfURLs.txt', 'r') as f:
urls = []
for url in f:
urls.append(url.strip())
html = {}
for url in urls:
urlFile = urllib2.urlopen(url) as urlFile
html[url] = urlFile.read()
urlFile.close()
print html
答案 1 :(得分: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.py
urls.txt
个文件。