首页 > 解决方案 > 我如何使用之前通过 Selenium 的浏览器自动化获得的 BeautifulSoup 抓取 ebay 网页?

问题描述

我想刮ebay。在进行任何抓取之前,我想通过使用 selenium 自动点击所需的点击来自动搜索、过滤和排序 ebay 帖子。我已经设法(相对稳健地)到达我想要的页面,但是似乎存在(1)网页更改其代码和/或(2)转换到 BeautifulSoup 部分的问题。

(1): 有时,当我在浏览器上搜索 ebay 上的项目并检查网页时,描述页面上所有 ebay-articles 的未排序列表 (ul) 的类具有类名“ListInnerView”,但其他一些乘以它的“srp-results”。另外,好像很多class和id的名字从结构“lv(后跟一个字符串)”变成了“s-item__(后跟一个字符串)”,所以整个页面好像在某种程度上发生了变化。

(2):当我查看 BeautifulSoup 接收的 html 代码时(它应该请求 Selenium 最终得到的 url,这是特定的),类和 id 名称与我在 webdriver 中看到的不匹配。这是您在 (1) 中看到的名称的确切差异。

如果来自 webdriver 窗口的 html 代码与 BeautifulSoup 收到的不匹配,我不知道该怎么办。因为那时我无法在视觉上找到 BeautifulSoup 应该找到的元素。

我一直在网上搜索我的问题的解释/解决方案,但还没有找到,因此提出了这个问题。

这是我代码的重要部分(如果缺少信息,我也可以共享整个代码):

from bs4 import BeautifulSoup
import requests
from time import sleep
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains

driver = webdriver.Chrome() 
driver.get("https://www.ebay.de")
>a bunch of clicking, hovering and scrolling, that works<

soup = BeautifulSoup(driver.page_source, "html.parser")
>a bunch of finding elements, doesn't work; works on its own though, using specific set of class(id-names...

标签: htmlseleniumdomweb-scrapingbeautifulsoup

解决方案


推荐阅读