我一直试图抓住this page。
我似乎无法在我的回复对象中加载“加载更多结果”(法语中的“voir plusderésultats”)。
当我刮擦时,我通常使用网络监控技巧来检查AJAX
请求,但是当我点击“加载更多结果”时没有显示任何活动。这就是为什么我假设结果已经加载但隐藏了。
到目前为止,这是我的代码,它会返回no clickable element matching clickdata {'href' :"#"}
。
import scrapy
from scrapy.spiders import CrawlSpider, Rule
from scrapy.linkextractors import LinkExtractor
from TopAchat.items import TopachatItem
class TopAchatSpider(CrawlSpider):
name = "TopAchat1"
start_urls = ["https://www.topachat.com/pages/marque.php"]
rules = ( Rule(LinkExtractor(restrict_xpaths=('//*[@id="content"]/section/ul[@class="listProduct"]//a'))),
Rule(LinkExtractor(restrict_xpaths=("//li[@class='link-visible']//a","//li[@class='display: list-item']//a")),callback='parse_item'),
)
def parse_item(self, response):
item = TopachatItem()
item["brandname"] = response.xpath("//div[@class='small']/div/text()").extract_first()[4:].split(" ")[0]
item["href"] = response.request.url
item["name"] = response.xpath("//div[@class='libelle']/h1/text()").extract_first()
item["specs"] = response.xpath("//strong[@class='big short-descr']/text()").extract_first()
item["product_type"] = response.xpath("//nav[@class='meta small']//p//b/text()").extract_first()
return item,scrapy.FormRequest.from_response(
response,
clickdata = {'href' :"#"})
我知道还有其他方法来刮取数据(Selenium
即),但感觉我错过了一些明显的东西,我似乎无法找到它。
非常感谢任何帮助!
答案 0 :(得分:0)
他们在HTML源代码中有这个:
<li class='link-visible'> <a href='/pages/detail2_cat_est_ordinateurs_puis_rubrique_est_wh_tabmul_puis_ref_est_in10092521.html'>
apple ipad mini 4 7.9'' retina 128 go wi-fi gris sideral (2015) <strong>(MK9N2NF/A</strong>) </a>
</li>
<li class='link-visible'> <a href='/pages/detail2_cat_est_ordinateurs_puis_rubrique_est_wh_tabmul_puis_ref_est_in10103554.html'>
Apple iPad 32 Go Wi-Fi Or (2017) <strong>(MPGT2NF/A</strong>) </a>
</li>
<li> <a href='/pages/detail2_cat_est_ordinateurs_puis_rubrique_est_wh_tabmul_puis_ref_est_in10103538.html'>
apple ipad 32 go wi-fi gris sideral (2017) <strong>(MP2F2NF/A</strong>) </a>
</li>
<li> <a href='/pages/detail2_cat_est_ordinateurs_puis_rubrique_est_wh_tabmul_puis_ref_est_in10103545.html'>
Apple iPad 32 Go Wi-Fi Silver (2017) <strong>(MP2G2NF/A</strong>) </a>
</li>
因此,你可以看到它//li[@class="link-visible"]/a
(你有这个)和//li/a
(你需要添加它来捕捉&#34;加载更多结果&#34;)