python中的web爬虫。我应该从哪里开始,我应该遵循什么? - 需要帮助

时间:2010-07-29 05:32:17

标签: python web-crawler

我对python有中级知识。如果我必须在python中编写一个Web爬虫,我应该遵循什么,我应该从哪里开始。有没有具体的啧啧?任何建议都会有很大的帮助..谢谢

8 个答案:

答案 0 :(得分:7)

我强烈建议您查看Scrapy。该库可以与BeautifulSoup或任何首选的HTML解析器一起使用。我个人将它与lxml.html一起使用。

开箱即用,您可以免费获得以下几项内容:

  • 并发请求,感谢Twisted
  • CrawlSpider个对象以递归方式查找整个站点中的链接
  • 数据提取与数据提取的完美分离处理,它充分利用了并行处理能力

答案 1 :(得分:5)

你肯定需要一个html解析库。为此你可以使用BeautifulSoup。您可以在官方页面中找到大量用于获取网址和处理返回的html的示例和教程:http://www.crummy.com/software/BeautifulSoup/

答案 2 :(得分:5)

如果您仍想从头开始编写,则需要使用mechanize模块。它包括模拟浏览器所需的一切,并自动获取网址。我会多余,也会说BeautifulSoup解析你提取的任何html。否则,我会选择Scrapy ......

答案 3 :(得分:3)

为什么不寻找已经满足您需求的existing code?如果你需要自己构建一个,那么仍然需要查看现有代码并解构它以弄清楚它是如何工作的。

答案 4 :(得分:2)

这取决于您的需求。如果你需要基本的webscraping,那么mechanize + BeautifulSoup将会成功。

如果您需要渲染javascript,那么我会选择Selenium或spynner。两者都很棒。

答案 5 :(得分:2)

IBM Developer Works有一篇关于此https://www.ibm.com/developerworks/linux/library/l-spider/#N101C6的文章。您可能希望使用其他人建议的库,但这将使您全面了解流程。

答案 6 :(得分:1)

您可能需要的另一个好的库是解析Feed。现在您已经为网址设置了BeautifulSoup,您可以使用Feedparser作为Feed。 http://www.feedparser.org/

答案 7 :(得分:-1)

import re, urllib

textfile = file('depth_1.txt','wt')
print "Enter the URL you wish to crawl.."
print 'Usage  - "http://dynamichackerboys.blogspot.in" <-- With the double quotes'
myurl = input("@> ")
for i in re.findall('''href=["'](.[^"']+)["']''', urllib.urlopen(myurl).read(), re.I):
        print i 
        for ee in re.findall('''href=["'](.[^"']+)["']''', urllib.urlopen(i).read(), re.I):
                print ee
                textfile.write(ee+'\n')
textfile.close()

打印'用法 - “http://dynamichackerboys.blogspot.in”&lt; - 使用双引号' myurl = input(“@&gt;”) 我在re.findall('''href =“'[”']''',urllib.urlopen(myurl).read(),re.I):         打印我         对于re.findall中的ee('''href =“'[”']''',urllib.urlopen(i).read(),re.I):                 打印ee                 textfile.write(EE + '\ n') textfile.close()

在网站上抓取