好吧,我是编程新手,我认为最好的学习方法是编程。我的部分工作包括在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
答案 0 :(得分:0)
csv模块非常方便,对于具有不规则/空字段的制表符分隔文件也很有用。 (导入csv)
with open('something_something_darkside.txt', 'rb') as f:
data = list(csv.reader(f,delimiter='\t'))
for row in data:
就网页而言,我找到了使用Beautiful Soup将html转换为xml的方法,并使用xml解析器来提取我需要的内容。这些方法可能已经过时但仍然可靠。