我正在尝试用Python编写基本的Web爬虫。我遇到的麻烦是解析页面以提取url。我已经尝试过BeautifulSoup和正则表达式但是我无法实现有效的解决方案。
作为一个例子:我正在尝试在Facebook的Github页面中提取所有成员网址。 (https://github.com/facebook?tab=members)。我写的代码提取成员URL;
def getMembers(url):
text = urllib2.urlopen(url).read();
soup = BeautifulSoup(text);
memberList = []
#Retrieve every user from the company
#url = "https://github.com/facebook?tab=members"
data = soup.findAll('ul',attrs={'class':'members-list'});
for div in data:
links = div.findAll('li')
for link in links:
memberList.append("https://github.com" + str(link.a['href']))
return memberList
然而,这需要花费很长时间来解析,我想知道我是否可以更有效地完成它,因为爬行过程太长了。
答案 0 :(得分:1)
我建议您使用GitHub API,它可以让您完成您想要完成的任务。然后,只需要使用json解析器即可完成。
答案 1 :(得分:1)
为了防止自己编写刮刀,您可以使用可用的刮刀。也许尝试scrapy,它使用python,它可以在github上使用。 http://scrapy.org/
答案 2 :(得分:0)
检查帖子Extremely Simple Web Crawler是否有简单易懂的python脚本,该脚本可以抓取网页并根据种子网址和深度收集所有有效的超链接: