小编典典

如何从无限滚动网站上抓取所有内容?

scrapy

我正在用scrap。

我正在使用的网站具有无限滚动。

该网站上有大量帖子,但我只抓取了13。

如何scrape 其余的帖子?

这是我的代码:

class exampleSpider(scrapy.Spider):
name = "example"
#from_date = datetime.date.today() - datetime.timedelta(6*365/12)
allowed_domains = ["example.com"]
start_urls = [
    "http://www.example.com/somethinghere/"
]

def parse(self, response):
  for href in response.xpath("//*[@id='page-wrap']/div/div/div/section[2]/div/div/div/div[3]/ul/li/div/h1/a/@href"):
    url = response.urljoin(href.extract())
    yield scrapy.Request(url, callback=self.parse_dir_contents)


def parse_dir_contents(self, response):
    #scrape contents code here

阅读 454

收藏
2020-04-10

共1个答案

小编典典

我使用Selenium而不是,scrapy但是你必须能够执行等效操作,而我要做的是在加载文件时运行一些JavaScript,即:

driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")

而且我一直坚持下去,直到它不再滚动为止。它不是很漂亮,不能在生产中使用,但是对特定工作有效。

2020-04-10