2

我正在尝试用 Python 编写一个基本的网络爬虫。我遇到的麻烦是解析页面以提取 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

然而,这需要相当长的时间来解析,我想知道我是否可以更有效地做到这一点,因为爬行过程太长了。

4

3 回答 3

1

我建议你使用 GitHub API,它可以让你做你想做的事。然后只需要使用 json 解析器就可以了。

http://developer.github.com/v3/orgs/members/

于 2012-11-12T16:29:13.527 回答
1

为了防止自己编写刮板,您可以使用可用的刮板。也许试试scrapy,它使用python,它可以在github上找到。 http://scrapy.org/

于 2012-11-12T17:53:09.313 回答
0

查看Extremely Simple Web Crawler 这篇文章,了解一个简单易懂的 python 脚本,它可以爬取网页并根据种子 URL 和深度收集所有有效的超链接:

于 2014-05-05T17:21:27.567 回答