使用Python和Scrapy的IMDB Scraper
好吧,我是编程新手,我想最好的学习方法是编程。我的部分工作包括在IMDB上搜索一部电影,粘贴导演、编剧、前四名演员,以及Excel电子表格中IMDB页面的链接 我的最终目标是有一个带有电影标题和年份的CSV,让scraper从CSV中获取这些变量,搜索IMDB,提取数据,并将数据导出到新的CSV中 我有大约一个星期的阅读和研究。我已经成功地通过了Scrapy教程,但是我很难从那里达到想要的目的 如何将CSV中的值导入spider脚本?我想它看起来会像这样:使用Python和Scrapy的IMDB Scraper,python,scrapy,web-crawler,scraper,Python,Scrapy,Web Crawler,Scraper,好吧,我是编程新手,我想最好的学习方法是编程。我的部分工作包括在IMDB上搜索一部电影,粘贴导演、编剧、前四名演员,以及Excel电子表格中IMDB页面的链接 我的最终目标是有一个带有电影标题和年份的CSV,让scraper从CSV中获取这些变量,搜索IMDB,提取数据,并将数据导出到新的CSV中 我有大约一个星期的阅读和研究。我已经成功地通过了Scrapy教程,但是我很难从那里达到想要的目的 如何将CSV中的值导入spider脚本?我想它看起来会像这样: name = COLUMN1 year
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文件中提取
从那里开始,我需要蜘蛛跟随页面上的第一个链接,即电影名称,然后是后续页面上的see full cast和crew链接。
我需要的所有信息都在最后一页:
定义提取什么对我来说真的很困惑。
以下是我使用firebug提取的内容:
主任:
作者:
如果可能,参与者只需要前四个:
...
我不知道如何定义页面链接本身
之后,我只需要在整个列表中循环它,并用数据保存一个新的CSV
我知道这是一个激烈的问题,我不会要求任何人为我编写代码。如果我知道该去哪里/如何解决这个问题,我愿意投入工作。我正在阅读这些零碎的文档,但仍然不清楚
如果有比Python和Scrapy更好的方法,请告诉我
谢谢
编辑:Mac OS x 10.10.1、Python 2.7、Scrapy 0.24.4、用于编辑的TextWranglercsv模块非常方便,对于具有不规则/空字段的选项卡分隔文件也很有用。导入csv
with open('something_something_darkside.txt', 'rb') as f:
data = list(csv.reader(f,delimiter='\t'))
for row in data:
至于网页,我找到了使用BeautifulSoup将html转换为xml的方法,并使用xml解析器提取我需要的内容。这些方法可能已经过时,但仍然可靠