如何使python webcrawler无限并记录链接一次

时间:2015-08-03 08:34:33

标签: python web beautifulsoup web-crawler bs4

在新浪的帮助下,我能够在python中创建一个漂亮的小型网络爬虫。看完他的视频后,我玩了它并添加了一些东西。我试图让它变得无限,因为它会记录每个链接上的每个链接,但我没有这样做。我还有一个不止一次录制同一个链接的问题?我该如何解决这个问题呢?

这是我的代码。

import requests
from bs4 import BeautifulSoup

def spider(max_pages):
    page = 1
    while page <= max_pages:
        url = ''
        source_code = requests.get(url)
        plain_text = source_code.text
        soup = BeautifulSoup(plain_text, "html.parser")
        for link in soup.findAll("a"):
            href = link.get("href")
            title = link.get("title")
            links = []
            #print(href)
            #print(title)
            try:
                get_single_user_data(href)
            except:
                pass
        page += 1

def get_single_user_data(user_url):
    source_code = requests.get(user_url)
    plain_text = source_code.text
    soup = BeautifulSoup(plain_text, "html.parser")
    #for item_name in soup.findAll('span', {'id':'mm-saleDscPrc'}):
    #   print(item_name.string)
    for link in soup.findAll("a"):
        href = link.get("href")
        print(href)


spider(1)

1 个答案:

答案 0 :(得分:-1)

  

我试图让它变得无限,因为它会在每次记录的每个链接上获得每个链接

除非你有一个体面的数据中心,否则不会发生这种情况。但为了它。您只需要一个更大的起始网站来抓取其他网站的链接,您就可以获得足够的信息。从Reddit的所有出站链接开始。

  

我还有多次录制同一链接的问题?

我建议您使用hash table录制已经访问过的链接,以便记录您访问过的网站,并在访问之前检查链接是否存在。