python - 如何根据 Scrapy 中的部分自定义属性名称检索对象?
问题描述
我有以下元素:
<div data-offer="MTs3O29sZG5hdnkuY29tOzQxMDYy" class="Offer__Card-sc-14rx0hy-0 iBdrTi"></div>
我需要用scrapy找到它,但我有两个并发症。该类可以更改,因此它不会具有该值。几乎不在桌子上。
第二个问题是data-offer值可能在 data-offer、data-offer-promo 和 data-offer-double 之间变化
您知道如何根据部分属性名称找到这些元素吗?就像带给我所有具有自定义属性“data-offer*”的东西,或者以它开头的所有东西也可以,但不是值,属性名称。
我试过这个没有成功
response.css('[div::attr^="data-offer"]')
解决方案
您可以使用 beautifulSoup 找到这些元素。这将找到第一个具有“data-offer”属性的 div 元素:
soup = BeautifulSoup(response.body, 'lxml') results = soup.find("div", {"data-offer" : True})
您还可以获得一个包含所有具有相同条件的元素的列表:
soup = BeautifulSoup(response.body, 'lxml') results = soup.find_all("div", {"data-offer" : True})
推荐阅读
- php - 首先显示具有确定值的数组元素
- javascript - 带有或不带有用于保存 textarea 内容的保存按钮
- c# - 在同一个类中使用不同的 Serilog 接收器用于不同的目的 + 依赖注入
- reactjs - 对于 react-bootstrap-table2,您如何将所有复选框项目默认为选中?
- c++ - 部分定义/别名模板模板参数
- leaflet - 传单的所有可用平铺层列表
- pandas - 将值从 1 列转换为多列
- arrays - 映射减少字符串中的总和项目权重
- python - 没有围绕情节的空白区域的 Seaborn 热图
- postgresql - 有没有办法组织 Postgres 函数(使用 pgAdmin)?