Webscrape从2500链接 - 行动的课程?

时间:2015-09-18 00:28:16

标签: python list python-2.7 beautifulsoup

我有近2500个唯一链接,我想从中运行BeautifulSoup并收集2500页中每个页面中段落中捕获的文本。我可以为每个链接创建变量,但拥有2500显然不是最有效的行动方案。链接包含在如下列表中:

linkslist = ["http://www.website.com/category/item1","http://www.website.com/category/item2","http://www.website.com/category/item3", ...]

我应该像以下一样编写for循环吗?

for link in linkslist:
    opened_url = urllib2.urlopen(link).read()
    soup = BeautifulSoup(opened_url)
...

我正在寻找任何建设性的批评。谢谢!

2 个答案:

答案 0 :(得分:1)

这是Scrapy的一个很好的用例 - 一个基于Twisted的流行网络抓取框架:

  

Scrapy是用Twisted编写的,这是一种流行的事件驱动网络   Python的框架。因此,它使用非阻塞(也就是说   异步)并发代码。

设置蜘蛛的start_urls属性并解析parse()回调中的页面:

class MySpider(scrapy.Spider):
    name = "myspider"
    start_urls = ["http://www.website.com/category/item1","http://www.website.com/category/item2","http://www.website.com/category/item3", ...]
    allowed_domains = ["website.com"]

    def parse(self, response):
        print response.xpath("//title/text()").extract()

答案 1 :(得分:1)

编写一个可以单独处理每个URL的函数怎么样?

child.twig

这将在列表中的每个网址上运行您的功能。如果你想加快速度,这很容易并行:

content