在新浪的帮助下,我能够在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)
答案 0 :(得分:-1)
我试图让它变得无限,因为它会在每次记录的每个链接上获得每个链接
除非你有一个体面的数据中心,否则不会发生这种情况。但为了它。您只需要一个更大的起始网站来抓取其他网站的链接,您就可以获得足够的信息。从Reddit的所有出站链接开始。
我还有多次录制同一链接的问题?
我建议您使用hash table录制已经访问过的链接,以便记录您访问过的网站,并在访问之前检查链接是否存在。