刮削问题(动态含量)(无硒)

2024-06-16 10:28:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要抓取http://www.vintagetoday.be/fr/montres,但它有动态内容。在

我该怎么做?在

我的代码

来自bs4的导入请求import beautifulsout t=请求.get("vintagetoday.be/fr/目录.awp“)。文本 print(len(beauthoulsoup(t,“lxml”).findAll(“td”,{“class”:“Lien2”})))

结果是16篇,而thera是430篇


Tags: 代码import目录http内容getwww动态
2条回答

我绝对不是这方面的专家,但我认为这是你想要的。在

from bs4 import BeautifulSoup
from urllib.request import Request, urlopen
import re

req = Request("http://www.vintagetoday.be/fr/montres")
html_page = urlopen(req)

soup = BeautifulSoup(html_page, "lxml")

links = []
for link in soup.findAll('a'):
    links.append(link.get('href'))
print(links)

更多信息请参见下面的两个链接。在

https://pythonspot.com/extract-links-from-webpage-beautifulsoup/

https://pythonprogramminglanguage.com/get-links-from-webpage/

这是正常的,你只得到16个链接,而不是430,当页面第一次加载时,它只有前16个手表(链接)为了得到更多你需要向下滚动页面和更多的手表将出现,为了实现这一点,你可以使用Selenium。在

一个更好的方法是反向使用AJAX调用来加载手表(paginate),并在代码中直接使用这个调用。 快速查看可以看到,他们调用以下URL来加载更多监视(POST):

http://www.vintagetoday.be/fr/montres?AWPIDD9BBA1F0=27045E7B002DF1FE7C1BA8D48193FD1E54B2AAEB

我没有看到任何指示分页tho的参数,这意味着它存储在会话中,它们还发送一些查询字符串参数和请求的主体,所以您也需要检查它。在

返回值似乎是XML格式的,很容易从中获取url。在

相关问题 更多 >