使用Python和Scrapy的IMDB Scraper

使用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

好吧,我是编程新手,我想最好的学习方法是编程。我的部分工作包括在IMDB上搜索一部电影,粘贴导演、编剧、前四名演员,以及Excel电子表格中IMDB页面的链接

我的最终目标是有一个带有电影标题和年份的CSV,让scraper从CSV中获取这些变量,搜索IMDB,提取数据,并将数据导出到新的CSV中

我有大约一个星期的阅读和研究。我已经成功地通过了Scrapy教程,但是我很难从那里达到想要的目的

如何将CSV中的值导入spider脚本?我想它看起来会像这样:

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、用于编辑的TextWrangler

csv模块非常方便,对于具有不规则/空字段的选项卡分隔文件也很有用。导入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解析器提取我需要的内容。这些方法可能已经过时,但仍然可靠