【发布时间】:2010-07-29 05:32:17
【问题描述】:
我在 python 方面有中级知识。如果我必须在 python 中编写一个网络爬虫,我应该遵循什么以及我应该从哪里开始。有没有具体的tut?任何建议都会有很大帮助..谢谢
【问题讨论】:
标签: python web-crawler
我在 python 方面有中级知识。如果我必须在 python 中编写一个网络爬虫,我应该遵循什么以及我应该从哪里开始。有没有具体的tut?任何建议都会有很大帮助..谢谢
【问题讨论】:
标签: python web-crawler
我强烈建议您查看Scrapy。该库可以与 BeautifulSoup 或任何您喜欢的 HTML 解析器一起使用。我个人将它与 lxml.html 一起使用。
开箱即用,您可以免费获得几样东西:
CrawlSpider对象递归地在整个站点中寻找链接【讨论】:
您肯定需要一个 html 解析库。为此,您可以使用 BeautifulSoup。您可以在官方页面中找到大量用于获取 url 和处理返回的 html 的示例和教程:http://www.crummy.com/software/BeautifulSoup/
【讨论】:
如果您仍想从头开始编写,您将需要使用mechanize 模块。它包括模拟浏览器和自动获取 url 所需的一切。我将是多余的,还说 BeautifulSoup 用于解析您获取的任何 html。否则,我会选择 Scrapy...
【讨论】:
为什么不寻找已经满足您需要的existing code?如果您需要自己构建一个,仍然值得查看现有代码并对其进行解构以了解其工作原理。
【讨论】:
这取决于您的需求。如果你需要基本的网页抓取,那么 mechanize + BeautifulSoup 就可以了。
如果您需要渲染 javascript,那么我会选择 Selenium,或 spynner。两者都很棒。
【讨论】:
IBM Developer Works 在此 https://www.ibm.com/developerworks/linux/library/l-spider/#N101C6 上有一篇文章。您可能希望使用其他人建议的库,但这会让您对流程有一个整体的了解。
【讨论】:
您可能需要的另一个好的库是用于解析提要。现在您已经拥有了用于 url 的 BeautifulSoup,您可以将 Feedparser 用于提要。 http://www.feedparser.org/
【讨论】:
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()
print '用法 - "http://dynamichackerboys.blogspot.in" ”) 对于我在 re.findall('''href="'["']''', urllib.urlopen(myurl).read(), re.I): 打印我 对于 re.findall('''href="'["']''', urllib.urlopen(i).read(), re.I) 中的 ee: 打印 textfile.write(ee+'\n') 文本文件.close()
用于在网站中爬行
【讨论】: