我正在尝试从此website
中获取所有链接我的代码是:
import bs4
from urllib.request import urlopen as uReq
from bs4 import BeautifulSoup as soup
url_meva = https://www.recetasgratis.net'
uClient = uReq(url_meva)
pag_html = uClient.read()
uClient.close()
pag_soup = soup(pag_html, "html.parser")
containers = pag_soup.findAll("a",{"class":"titulo titulo--bloque"})
如果我输入len(containers),则结果为43,大约必须为25000。
为什么我只能得到那43个而不是其余的?
想法是获取食谱的链接。 我知道该网站的食谱结构相同。
谢谢
答案 0 :(得分:0)
阅读URL https://www.recetasgratis.net
的内容时得到的是来自链接view-source:https://www.recetasgratis.net/
的原始文本,该链接恰好具有类titulo titulo--bloque
的43个实例。您需要弄清楚动态加载网页背后的功能,并利用它来获取所有链接的列表。祝你好运。
答案 1 :(得分:0)
您当前的实现只抓取当前的主页。
首先,如果要开始抓取所有25k配方链接,则必须从https://www.recetasgratis.net/busqueda/pag/1到574对其目录的每一页都执行此操作。
您可以通过使用for循环构建url并遍历每个页面并运行来实现此目的
pag_soup.findAll("a",{"class":"titulo titulo--bloque"})
每页。
到那时,您应该拥有所有链接,并且将能够开始实际地从每个页面抓取数据-实现将完全由您自己完成。
我建议使用某种平面文件数据存储来跟踪收集的URL。不建议将所有内容都存储在内存中,因为一个异常会破坏整个500多个页面流,并使您需要重新开始。
此外,如果这不是您的网站,请考虑您正在做的事情legal implications。