我正在尝试使用 scrapy从该网站的优惠中抓取URL这是我试过的代码:url = response.css('a[data-tracking="click_body"]::attr(href)').extract()但是我的代码返回的内容与 URL 非常不同。这是我感兴趣的 div 的 HTML 代码。<div class="offer-item-details"> <header class="offer-item-header"> <h3> <a href="https://www.otodom.pl/oferta/gdansk-pod-inwestycje-cicha-lokalizacja-ID46DXu.html#ab04badaa0" data-tracking="click_body" data-tracking-data="{"touch_point_button":"title"}" data-featured-name="promo_top_ads"> <strong class="visible-xs-block">42 m²</strong> <span class="text-nowrap"> <span class="offer-item-title">Gdańsk/ Pod Inwestycje/ Cicha Lokalizacja</span> </span> </a> </h3> <p class="text-nowrap"><span class="hidden-xs">Mieszkanie na sprzedaż: </span>Gdańsk, Ujeścisko-Łostowice, Łostowice</p> <div class="vas-list-no-offer"> <a class="button-observed observe-link favourites-button observed-text svg-heart add-to-favourites" data-statkey="ad.observed.list" rel="nofollow" data-id="60688916" href="#" title="Obserwuj"> <div class="observed-text-container" style="display: flex;"> <span class="icon observed-60688916"></span> <i class="icon-heart-filled"></i> <div class="observed-label">Dodaj do ulubionych</div> </div> </a> </div> </header>
1 回答

阿晨1998
TA贡献2037条经验 获得超6个赞
您的代码为您提供了 URL 列表。本例中的 extract() 方法获取一个列表。要允许 scrapy 提取数据,您必须执行 for 循环和 yield 语句。
url = response.css('a[data-tracking="click_body"]::attr(href)').extract()
for a in url:
yield{'url', a}
添加回答
举报
0/150
提交
取消