【问题标题】:I am trying to Scrape Data Using Scrapy我正在尝试使用 Scrapy 抓取数据
【发布时间】:2021-06-30 05:23:01
【问题描述】:

我正在尝试从 pewdiepie 频道获取所有视频链接。我写了以下代码,它没有显示任何错误,但它没有抓取链接。

代码如下:

import scrapy
from scrapy.crawler import CrawlerProcess

class PewSpider(scrapy.Spider):
   name = "pew_spider"
   def start_request(self):
      urls = ['https://www.youtube.com/user/PewDiePie/videos'] 
      for url in urls:
        yield scrapy.Request(url=url, callback=self.parser)

   def parser(self, response):
      links = response.css('div#contents > a#thumbnail::attr(href)')
      filepath = "./Desktop/pew.csv"
      with open(filepath, 'w') as f:
         f.writelines( [link + '/n' for link in links])

process = CrawlerProcess()
process.crawl(PewSpider)
process.start()

【问题讨论】:

    标签: python-3.x web-scraping scrapy web-crawler


    【解决方案1】:

    我想你应该先看看 YouTube API,然后再尝试从网站上抓取它。 https://developers.google.com/youtube/v3

    【讨论】:

    • 这是否意味着我的代码没有问题?
    • 我没有检查,但 YouTube HTML 代码可能是用 JavaScript 代码构建的,所以当您从 youtube.com/user/PewDiePie/videos 阅读源代码时,元素并不真正存在。之后它是由所有的 javascript 构建的。您可以使用无头浏览器(如 playwright)或 scrapy-splash 来帮助您在选择元素之前评估所有 javascript 代码。这就是为什么 YouTube API 最终可能更容易使用的原因。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-18
    • 2013-05-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多