scrapy mysql 豆瓣_Python爬虫之Scrapy+Mysql+Mongodb爬豆瓣top250电影

学习python时,爬虫是一种简单上手的方式,应该也是一个必经阶段。本项目用Scrapy框架实现了抓取豆瓣top250电影,并将图片及其它信息保存下来。爬取豆瓣top250电影不需要登录、没有JS解析、而且只有10页内容,用来练手,太合适不过了。

我的开发环境

WIN10 64位系统

Python 3.6.1

PyCharm、Sublime Text

Mysql、MongoDB,可视化:DbVisualizer、Robomongo

项目目录

e9fd0a738e2e

项目目录

spiders/sp_douban.py:处理链接,解析item部分

items.py:豆瓣top250电影字段

middlewares.py、user_agents.py:从维护的UserAgent池中随机选取

settings.py:配置文件

main.py:免去在命令行输入运行指令

页面抓取内容分析

e9fd0a738e2e

内容区

e9fd0a738e2e

span内容

如图所示,抓取信息对应如下:

class DoubanTopMoviesItem(scrapy.Item):

title_ch = scrapy.Field() # 中文标题

# title_en = scrapy.Field() # 外文名字

# title_ht = scrapy.Field() # 港台名字

# detail = scrapy.Field() # 导演主演等信息

rating_num = scrapy.Field() # 分值

rating_count = scrapy.Field() # 评论人数

# quote = scrapy.Field() # 短评

image_urls = scrapy.Field() # 封面图片地址

topid = scrapy.Field() # 排名序号

用xpath取出对应路径,进行必要的清洗,去除空格等多余内容:

item['title_ch'] = response.xpath('//div[@class="hd"]//span[@class="title"][1]/text()').extract()

en_list = response.xpath('//div[@class="hd"]//span[@class="title"][2]/text()').extract()

item['title_en'] = [en.replace('\xa0/\xa0','').replace(' ','') for en in en_list]

ht_list = response.xpath('//div[@class="hd"]//span[@class="other"]/text()').extract()

item['title_ht'] = [ht.replace('\xa0/\xa0','').replace(' ','') for

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值