当前位置: 首页 > 知识库问答 >
问题:

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

华永新
2023-03-14

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

我该怎么做呢?

从bs4导入请求导入美丽汤t=requests.get("vintagetoday.be/fr/catalogue.awp"). text print(len(美丽汤(t,"lxml"). findAll("td",{"class":"Lien2"}))

共有2个答案

司空海荣
2023-03-14

我肯定不是这方面的专家,但我认为这正是你想要的。

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/

海叶秋
2023-03-14

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

一个更好的方法是反转用于加载手表(分页)的AJAX调用,并直接在代码中使用此调用。快速查看显示,他们调用以下URL以加载更多手表(POST):

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

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

返回值似乎是XML格式的,可以直接从XML获取URL。

 类似资料:
  • 问题内容: 我已经写了很多刮板,但是我不确定如何处理无限滚动条。如今,大多数网站,Facebook,Pinterest等都有无限滚动条。 问题答案: 您可以使用硒来刮除Twitter或Facebook之类的无限滚动网站。 步骤1:使用pip安装Selenium 第2步:使用下面的代码自动执行无限滚动并提取源代码 步骤3:根据需要打印数据。

  • 提前感谢你的帮助。

  • 问题内容: 我取这个页面与该请求库中的Node.js,并使用解析身体cheerio。 调用已解析的响应正文,发现该页面的title属性为: …什么时候应该: 我尝试将请求库的选项设置为include ,但这似乎并没有改变任何东西。 如何保留这些字符? 问题答案: 该页面似乎是用iso-8859-1编码的。您需要通过传递并使用诸如node- iconv之 类的东西来告诉您退回未编码的缓冲区。 如果要

  • 问题内容: 按计划运行Scrapy使我绕过Twist(ed)。 我以为下面的测试代码可以工作,但是第二次触发蜘蛛时出现错误: 我猜想,作为CrawlerProcess的一部分,Twisted Reactor会在不需要时再次启动,从而导致程序崩溃。有什么办法可以控制吗? 同样在这个阶段,如果有一种自动执行Scrapy Spider的替代方法可以按计划运行,我也很高兴。我试过了,但还是不能让它循环:

  • 问题内容: 到目前为止,我一直只使用scrapy并编写自定义类来使用ajax处理网站。 但是,如果我要使用scrapy-splash,据我所知,它会在javascript之后刮擦呈现的html,那么对我的抓取工具的速度会产生重大影响吗? 用scrapy刮擦香草html页面与使用scrapy-splash渲染javascript html所花费的时间之间的比较是什么? 最后,scrapy-splas