【问题标题】:Cannot scrape AliExpress HTML element无法抓取 AliExpress HTML 元素
【发布时间】:2021-02-04 15:57:18
【问题描述】:

我想从 aliexpress 获取任意报价。我正在尝试使用scrapy和硒。我面临的问题是,当我使用 chrome 并在元素上执行 right click > inspect 时,我看到了真正的 HTML,但是当我执行 right click > view source 时,我看到了一些东西不同 - HTML CSS 和 JS 乱七八糟。

据我了解,内容是异步拉取的?我想这就是我在页面上找不到我要查找的元素的原因。

我试图先使用 selenium 加载页面,然后获取我想要的内容,但失败了。我正在尝试向下滚动到 reviews 部分并获取它的 content

这是他们拥有的一些高级反机器人解决方案,还是我的方法有误?

我目前拥有的代码:

import scrapy
from selenium import webdriver
import logging
import time

logging.getLogger('scrapy').setLevel(logging.WARNING)


class MySpider(scrapy.Spider):
    name = 'myspider'
    
    start_urls = ['https://pl.aliexpress.com/item/32998115046.html']

    def __init__(self):
        self.driver = webdriver.Chrome()

    def parse(self, response):
        self.driver.get(response.url)

        scroll_retries = 20
        data = ''
        while scroll_retries > 0:
            try:
                data = self.driver.find_element_by_class_name('feedback-list-wrap')
                scroll_retries = 0
            except:
                self.scroll_down(500)
                scroll_retries -= 1

        print("----------")
        print(data)
        print("----------")
        self.driver.close()

    def scroll_down(self, pixels):
        self.driver.execute_script("window.scrollTo(0, {});".format(pixels))
        time.sleep(2)

【问题讨论】:

  • 你只是想要反馈?
  • @Piron 现在 - 是的,但也许将来我想废弃更多

标签: python html scrapy aliexpress


【解决方案1】:

通过浏览器inspect工具的network标签查看请求,您会发现cmets来自here,因此您可以抓取此页面。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-05
    • 1970-01-01
    • 2020-08-05
    相关资源
    最近更新 更多