页面内容不同 Apify Web Crawling
Diffrent content on the page Apify Webcrawling
我有一个关于使用 Apify 抓取网站的问题。我想从网页中获取以下信息:“位置、区域、网站和电子邮件。现在使用我的代码,我可以获得几页的正确数据,问题是信息的顺序在每一页上都不相同. 例如 Phone 数字是一个页面上的第一个,另一个页面上的第三个。有没有办法在代码的 "dt" 部分查找文本,所以我得到了右列中的正确数据?或者是否有其他选项可以解决此问题?
现在这是我的代码:
const $ = jQuery
if ( request.userData.label === 'Deals'){
const location = $('.info-list dd:nth-of-type(1)').text();
const area = $('.info-list dd:nth-of-type(2)').text();
const website = $('.info-list dd:nth-of-type(4)').text();
const email = $('.info-list dd:nth-of-type(5)').text();
这是 Html 代码:
<dl class="info-list">
<dt>Location</dt><dd>.....</dd><dt>Area</dt><dd>Cape Town CBD</dd><dt>Phone</dt><dd class="number">......</dd><dt>Website</dt><dd><a target="_blank" href=.......>http://15onorangebyautograph.com</a></dd><dt>Email</dt><dd><a href="mailto:africanpride.15onorange@autographhotels.com">africanpride.15onorange@autographhotels.com</a></dd>
</dl>
感谢您的帮助
是的,使用 JQuery 您也可以使用 [:contains()](https://api.jquery.com/contains-selector/#contains1)
查询文本
所以你可以得到包含关键字的 dt
然后下一个是 dd
有你需要的数据:
const location = $('.info-list dt:contains("Location")').next().text();
我有一个关于使用 Apify 抓取网站的问题。我想从网页中获取以下信息:“位置、区域、网站和电子邮件。现在使用我的代码,我可以获得几页的正确数据,问题是信息的顺序在每一页上都不相同. 例如 Phone 数字是一个页面上的第一个,另一个页面上的第三个。有没有办法在代码的 "dt" 部分查找文本,所以我得到了右列中的正确数据?或者是否有其他选项可以解决此问题?
现在这是我的代码: const $ = jQuery
if ( request.userData.label === 'Deals'){
const location = $('.info-list dd:nth-of-type(1)').text();
const area = $('.info-list dd:nth-of-type(2)').text();
const website = $('.info-list dd:nth-of-type(4)').text();
const email = $('.info-list dd:nth-of-type(5)').text();
这是 Html 代码:
<dl class="info-list">
<dt>Location</dt><dd>.....</dd><dt>Area</dt><dd>Cape Town CBD</dd><dt>Phone</dt><dd class="number">......</dd><dt>Website</dt><dd><a target="_blank" href=.......>http://15onorangebyautograph.com</a></dd><dt>Email</dt><dd><a href="mailto:africanpride.15onorange@autographhotels.com">africanpride.15onorange@autographhotels.com</a></dd>
</dl>
感谢您的帮助
是的,使用 JQuery 您也可以使用 [:contains()](https://api.jquery.com/contains-selector/#contains1)
所以你可以得到包含关键字的 dt
然后下一个是 dd
有你需要的数据:
const location = $('.info-list dt:contains("Location")').next().text();