首先分析我们要爬取的网页:
https://movie.douban.com/top250
代码中给出了比较详细的注释了。就不再讲解了。
接下来我们要运行这个程序。
我们可以在命令行中使用scrapy相关命令运行这个爬虫,不够我选择在pycharm中运行。
在douban主目录下创建main.py文件,写入一下内容:
from scrapy import cmdline
cmdline.execute('scrapy crawl douban'.split())
然后右键main.py文件选择Run ‘main’选项,就可以运行了。
这样我们就获得了写有电影信息的douban.csv文件了。
我们选择使用excel打开,跟我在bilibili爬虫那一节中讲的一样,我们需要转换一下编码,不然打开中文是乱码。
打开后,你可能会遇到每一列的顺序不一样。也就是电影名称可能并不是第一行。因为在我们用了一个字典保存信息。然而python的字典是无序的,我们也没有像bilibili那节中制定csv写入的顺序。所以就有可能遇到顺序是乱的情况。
我们需要在spiders目录下新建一个itemCsvExporter.py文件,写入以下内容:
from scrapy.conf import settings
from scrapy.contrib.exporter import CsvItemExporter
class itemCsvExporter(CsvItemExporter):
def __init__(self, *args, **kwargs):
delimiter = settings.get('CSV_DELIMITER', ',')
kwargs['delimiter'] = delimiter
fields_to_export = settings.get('FIELDS_TO_EXPORT', [])
if fields_to_export:
kwargs['fields_to_export'] = fields_to_export
super(itemCsvExporter, self).__init__(*args, **kwargs)
在setting中添加以下内容:
FEED_EXPORTERS = {
'csv': 'douban.spiders.itemCsvExporter.itemCsvExporter',
#douban为你的scrapy项目的名字
}
FIELDS_TO_EXPORT = [
'title',
'movieInfo',
'star',
'quote'
]
这样就可以按照上面指定的顺序储存信息了。先删除douban.csv文件,再跑一遍程序,再转码后用excel打开。
原文作者:Houtasu
原文地址: https://www.jianshu.com/p/634a47622d7e
本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。