【发布时间】:2021-10-24 00:52:33
【问题描述】:
我是 Python 的新手(和一般的编码),而且我对这两个方面的知识都是基本的/有限的(我基本上只是从各种 Google 搜索中复制代码)。
到目前为止,我设法想出了一个有效的代码:
import scrapy
class imdb_project(scrapy.Spider):
name = 'imdb'
start_urls = ['https://www.imdb.com/chart/top']
def parse(self, response):
for i in response.css('.titleColumn a'):
print(i.css('::text').get())
这段代码运行良好。我可以在 https://www.imdb.com/chart/top 上抓取所有 250 个电影标题
现在,我只想从同一页面中抓取电影标题,前提是电影在 2000 年及以后上映。
您可以看到here 年份显示在电影标题之后。这应该很容易做到,但对于我来说,我在谷歌甚至在 Stack Overflow 上都找不到类似的例子来帮助我开始解决这个问题。
我认为它应该是简单的:
if movie_year >= 2000:
then run the 'for' loop above
...但我不知道如何在 Python 中编写上述代码。任何帮助(如果可能,请不要使用正则表达式或 xpath)?
【问题讨论】:
-
你应该从他们的高级搜索中删除。但是,我只是添加重要说明: 机器人和屏幕抓取:您不得在本网站上使用数据挖掘、机器人、屏幕抓取或类似的数据收集和提取工具,除非得到我们明确的书面同意,如:imdb.com/conditions
标签: python web-scraping scrapy