【发布时间】:2015-01-16 18:43:37
【问题描述】:
好的,我是编程新手,我认为最好的学习方法是编程。我的部分工作包括在 IMDB 上搜索电影,然后在 Excel 电子表格中粘贴导演、编剧、(前四名)演员以及 IMDB 页面的链接。
我的最终目标是创建一个包含电影标题和年份的 CSV,并让抓取工具从 CSV 中获取这些变量,搜索 IMDB,提取数据,然后将数据导出到新的 CSV 中。
我已经阅读和研究了大约一个星期。我已经成功完成了 Scrapy 教程,但是我无法从那里到达预期的终点。
-
如何将 CSV 中的值导入蜘蛛脚本?我想它看起来像这样:
name = COLUMN1 year = COLUMN2 class imdb_spider(scrapy.Spider): name = "imdb" allowed_domains = ["imdb.com"] start_urls = [ "http://www.imdb.com/find?ref_=nv_sr_fn&q=/(name)&(year)" ]
我不确定如何从 CSV 文件中提取数据。
- 从那里,我需要蜘蛛跟随页面上的第一个链接(这将是电影名称),然后是后续页面上的“查看完整的演员和工作人员”链接。
我需要的所有信息都在最后一页:http://www.imdb.com/title/tt0081505/fullcredits?ref_=tt_ov_st_sm
- 定义要提取的内容让我非常困惑。
这是我用萤火虫拉的:
导演:
<td class="name">
<a href="/name/nm0000040/?ref_=ttfc_fc_dr1"> Stanley Kubrick </a>
</td>
作者:
<td class="name">
<a href="/name/nm0000040/?ref_=ttfc_fc_wr2"> Stanley Kubrick </a>
</td>
演员(如果可能,只需要前四个):
<td class="itemprop" itemtype="http://schema.org/Person" itemscope="" itemprop="actor">
<td class="ellipsis"> ... </td>
我不确定如何定义页面链接本身。
之后,我只需要将它循环到整个列表并保存一个包含数据的新 CSV。
我知道这是一个激烈的问题,我不会要求任何人为我编写代码。如果我知道在哪里看/如何解决这个问题,我愿意投入工作。我正在阅读 Scrapy 文档,但仍不清楚。
如果有比 Python 和 Scrapy 明显更好的方法,请告诉我。
谢谢。
编辑:Mac OS x 10.10.1、Python 2.7、Scrapy 0.24.4、TextWrangler 进行编辑
【问题讨论】:
标签: python scrapy web-crawler scraper