先看源代码

import requests
from lxml import htmldef spider(sn,book_list = []):"""爬取京东图书数据"""url = 'https://search.jd.com/Search?keyword={0}'.format(sn) # 使用format方法获取图书sn号heard = { 'User-Agent' : 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.79 Safari/537.36'}# 获取html文档resp = requests.get(url,headers=heard) # 取出头部resp.encoding = 'utf-8'html_doc = resp.text# 获取xpath对象selector = html.fromstring(html_doc)# 找到列表集合ul_list = selector.xpath('//div[@id="J_goodsList"]/ul/li')print(len(ul_list))# 解析对应的内容,标题,价格,链接for li in ul_list:# 标题title = li.xpath('div/div[@class="p-name"]/a/em/text()')print(title[0])# 购买链接link = li.xpath('div/div[@class="p-name"]/a/@href')print(link[0])# 价格price = li.xpath('div/div[@class="p-price"]/strong/i/text()')print(price[0])# 出版社shop = li.xpath('div/div[@class="p-shopnum"]/a/@title')print(shop[0])print('-----------------------------')book_list.append({'title' : title[0],'price' : price[0],'link' : link[0],'shop' : shop[0]})if __name__ == "__main__":spider('9787115428028')

我们从代码的开始来看,我们需要获取url,这里用了format方法保存图书的sn号。

 url = 'https://search.jd.com/Search?keyword={0}'.format(sn)

然后根据url获取html文档,爬取京东是需要将头部取出,设置字符编码为utf-8,否则会乱码。

    resp = requests.get(url,headers=heard) # 取出头部resp.encoding = 'utf-8'html_doc = resp.text


按F12k可以查看网页信息,从上图位置取出头部,格式如下:

  heard = { 'User-Agent' : 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.79 Safari/537.36'}

然后我们需要将html文档转换为xpath可以识别的对象

 selector = html.fromstring(html_doc)

这里主要的点就是使用xpath从html文档中获取图书列表,我们先在网页中找到图书列表的位置。

 ul_list = selector.xpath('//div[@id="J_goodsList"]/ul/li')

//表示从页面的任意位置匹配,然后我看到列表再div标签下,属性id为J_goodsList,div标签下面还有一个ul标签,下面的li标签就是我们需要的图书列表。
取出列表我们就可以对列表中的图书进行信息查找了,如查找标题。

 for li in ul_list:# 标题title = li.xpath('div/div[@class="p-name"]/a/em/text()')print(title[0])

使用for循环遍历列表,取出标题,同样使用xpath取出标题位置。

可以点击上面标注的小箭头,然后点击网页中图书的标题就会在右边的页面自动找到。那么怎么用xpath表示呢,这里就把li标签作为根目录,标题在em标签里,前面有一个a标签和两个div标签,使用class属性指定唯一的div标签。确定之后使用text()取出标签内容。
当然,要找其他信息也是一样的,就不一一举例了。

简单爬虫——京东网图书爬取相关推荐

  1. 京东爬虫——京东评论信息爬取及评论图片的下载

    之前,我做了一个天猫评论信息的抓取,和评论图片的下载,不过那次是将信息全部存入数据库后再从数据库提取图片信息进行下载,这次我做了一个信息抓取和图片下载的二合一升级版. 本次以京东nike自营店为目标, ...

  2. 爬虫-东方财富网报表爬取(2020-03-25)

    文章目录 爬取网站 疑难分析 代码 致谢 爬取网站 领导又让人爬数据了,其实爬虫对我来说也就兼职做做,下面要爬取就是这个网站的几张列表.这个网站其实之前写过代码的,只是后来吧,这个数据被加密反爬虫了. ...

  3. 在当当买了python怎么下载源代码-爬虫实战一:爬取当当网所有 Python 书籍

    图片来自 unsplash 我们已经学习 urllib.re.BeautifulSoup 这三个库的用法.但只是停留在理论层面上,还需实践来检验学习成果.因此,本文主要讲解如何利用我们刚才的几个库去实 ...

  4. python爬虫爬当当网_爬虫实战一:爬取当当网所有 Python 书籍

    本文转载自微信公众号[ 极客猴 ],作者知乎主页 此前错误标注来源导致侵权,在此表示歉意. 我们已经学习 urllib.re.BeautifulSoup 这三个库的用法.但只是停留在理论层面上,还需实 ...

  5. python爬虫网络数据包_Python爬虫之多线程图虫网数据爬取(十六)

    Python爬虫之多线程图虫网数据爬取(十六) 发布时间:2019-05-14 10:11, 浏览次数:289 , 标签: Python 原创不易,转载前请注明博主的链接地址:Blessy_Zhu h ...

  6. 给小白的python爬虫入门之批量爬取别样网的视频素材

    网络爬虫,听起来很神秘,其实也不过如此,简单来说,只要网站开放了端口即用户能访问这个网站,那么无论这个网站的反爬机制做的有多么好,只要你的技术够,总会有机会破解它. 换句话说,不是你的网站很安全,而是 ...

  7. Jsoup:用Java也可以爬虫,怎么使用Java进行爬虫,用Java爬取网页数据,使用Jsoup爬取数据,爬虫举例:京东搜索

    Jsoup:用Java也可以爬虫,怎么使用Java进行爬虫,用Java爬取网页数据,使用Jsoup爬取数据,爬虫举例:京东搜索 一.资源 为什么接下来的代码中要使用el.getElementsByTa ...

  8. java爬虫的2种爬取方式(HTTP||Socket)简单Demo(一)

    转载自 java爬虫的2种爬取方式(HTTP||Socket)简单Demo(一) 最近在找java的小项目自己写着玩,但是找不到合适的,于是写开始学一点爬虫,自己也是感觉爬虫比较有趣.这里自己找了一个 ...

  9. 多线程爬虫实战--彼岸图网壁纸爬取

    多线程爬虫实战–彼岸图网壁纸爬取 普通方法爬取 import requests from lxml import etree import os from urllib import requesth ...

最新文章

  1. unity中app实现拖拽_10分钟让你实现在APP中对网络状态变化进行全局提示
  2. Centos 7 安装 rabbitmq 3.6.6
  3. html标签的id中带有.号的获取方式
  4. ASP生成随机密码的源代码
  5. Java 多线程三大核心
  6. JZ2440学习总结1
  7. EnableAutoConfiguration自动配置底层原理
  8. java中初始化块、静态初始化块和构造方法
  9. 三桥君:如何把SQL Server的数据库导为sql文件
  10. c++如何生成一个不能被继承的类
  11. 飞思卡尔单片机c语言编程详解,主流16位单片机学习详解:飞思卡尔MC9S12G系列...
  12. ubuntu系统下快速安装谷歌浏览器(图文教程)
  13. 微信公众号授权登录,微信sdk的使用,及ios配置微信sdk失败
  14. Word中删除全部页眉页脚的方法
  15. 空间可分离卷积和深度可分离卷积
  16. 自己写的实用VBA代码合集
  17. python办公自动化模块_Python自动化办公Excel模块openpyxl原理及用法解析
  18. Macbook 安装VMware专业版
  19. Python:实现非极大值抑制
  20. ESP32A1S开发之智能家居 语音唤醒 语音命令控制(持续更新)

热门文章

  1. 【U8】13.0 固定资产折旧清单与折旧分配表不一致的问题
  2. 三级指标 主成分分析_(完整版)主成分分析法的步骤和原理
  3. 【论文】Saliency Detection: A Spectral Residual Approach阅读笔记
  4. xmind打不开的问题
  5. JDK动态代理源码解析
  6. 09 TypeError: Descriptors cannot not be created directly.
  7. 大文件数据恢复-轻松恢复大于4GB的文件
  8. 半导体器件物理【4】晶胞晶格晶面晶向
  9. Windows Mobile 6 SDK 中的 GPS 工具
  10. Android 软件安装方法介绍