python爬取京东书籍_一个scrapy框架的爬虫(爬取京东图书)

我们的这个爬虫设计来爬取京东图书(jd.com)。

scrapy框架相信大家比较了解了。里面有很多复杂的机制,超出本文的范围。

1、爬虫spider

tips:

1、xpath的语法比较坑,但是你可以在chrome上装一个xpath helper,轻松帮你搞定xpath正则表达式

2、动态内容,比如价格等是不能爬取到的

3、如本代码中,评论爬取部分代码涉及xpath对象的链式调用,可以参考

#-*- coding: utf-8 -*-

#import scrapy # 可以用这句代替下面三句,但不推荐

from scrapy.spiders importSpiderfrom scrapy.selector importSelectorfrom scrapy importRequestfrom scrapy.linkextractors.lxmlhtml importLxmlLinkExtractorfrom jdbook.items import JDBookItem #如果报错是pyCharm对目录理解错误的原因,不影响

classJDBookSpider(Spider):

name= "jdbook"allowed_domains= ["jd.com"] #允许爬取的域名,非此域名的网页不会爬取

start_urls =[#起始url,这里设置为从最大tid开始,向0的方向迭代

"http://item.jd.com/11678007.html"]#用来保持登录状态,可把chrome上拷贝下来的字符串形式cookie转化成字典形式,粘贴到此处

cookies ={}#发送给服务器的http头信息,有的网站需要伪装出浏览器头进行爬取,有的则不需要

headers ={#'Connection': 'keep - alive',

'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36'}#对请求的返回进行处理的配置

meta ={'dont_redirect': True, #禁止网页重定向

'handle_httpstatus_list': [301, 302] #对哪些异常返回进行处理

}defget_next_url(self, old_url):'''description: 返回下次迭代的url

:param oldUrl: 上一个爬去过的url

:return: 下次要爬取的url'''

#传入的url格式:http://www.heartsong.top/forum.php?mod=viewthread&tid=34

list = old_url.split('/') #用等号分割字符串

old_item_id = int(list[3].sp

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值