python3 爬虫入门 简单爬取京东商品名称案例 详细笔记说明

python3 爬虫入门 简单爬取京东商品名称案例

编译环境jupyter notebook

利用python3编写了一个很简单的爬虫爬取了京东商品名称

1.准备工作

不多赘述,基本就是打开一个你熟悉的python3的编译器,jupyter,Spyder,pycharm什么的都没问题,然后确定re库和requests库都装了且能调用。

2.得到网页URL

打开京东官网https://www.jd.com/————>点这里也行
在这里插入图片描述
直接查询你想要找的商品,这里我以笔记本为例
在这里插入图片描述
得到的网址就是我们要找的URL
即https://search.jd.com/Search?keyword=%E7%AC%94%E8%AE%B0%E6%9C%AC&enc=utf-8&spm=2.1.1——————>点这里也可以

3.得到header参数(referer、user-agent、cookie)

首先按键盘上的F12打开开发者工具
在这里插入图片描述
在Network标签下按Ctrl+R键,截获到很多文件
在这里插入图片描述
将左侧的name栏一直往上翻找到最开始截获的文件,打开,在header标签下寻找
在这里插入图片描述
发现其Request URL: https://search.jd.com/Search?keyword=%E7%AC%94%E8%AE%B0%E6%9C%AC&enc=utf-8&spm=2.1.1
这一项和之前找到的URL是一致的,这就是我们要找的文件

将右侧的header栏往下翻,逐个找到我们所需要的referer、user-agent、cookie
在这里插入图片描述
分别是
Cookie: shshshfpa=9529b92b-1cf0-6aea-4efb-869908d26320-1577165936; __jdv=122270672|www.sogou.com|-|referral|-|1599113777053; __jdu=1599113777051548192284; areaId=1; ipLoc-djd=1-2901-0-0; shshshfpb=pUb0V0GoYkEqEQAYC78QhtA%3D%3D; rkv=V0600; PCSYCityID=CN_110000_110100_110114; __jda=122270672.1599113777051548192284.1599113777.1599113777.1600269991.2; __jdc=122270672; 3AB9D23F7A4B3C9B=LDSY3E6WRHV3RITCNYJ2HG7E2RVNRUCIX4MWRJTW4EZZENZCTC47O5GJZHSBZUKJM3IOJWMQ6J2YFJAZUCZPW6SOIA; shshshfp=1a3704f42228aa044de34a81ee616ef1; qrsc=3
Referer: https://diannao.jd.com/
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.81 Safari/537.36 SE 2.X MetaSr 1.0

4.爬取网页源代码

先调用re和requests两个库

import re
import requests

然后准备好连接网页所需要的URL和header

url='https://search.jd.com/Search?keyword=%E7%AC%94%E8%AE%B0%E6%9C%AC&enc=utf-8&spm=2.1.1'
header = {'referer':'https://diannao.jd.com/',
         'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.81 Safari/537.36 SE 2.X MetaSr 1.0',
         'cookie':'shshshfpa=9529b92b-1cf0-6aea-4efb-869908d26320-1577165936; __jdv=122270672|www.sogou.com|-|referral|-|1599113777053; __jdu=1599113777051548192284; areaId=1; ipLoc-djd=1-2901-0-0; shshshfpb=pUb0V0GoYkEqEQAYC78QhtA%3D%3D; rkv=V0600; PCSYCityID=CN_110000_110100_110114; __jda=122270672.1599113777051548192284.1599113777.1599113777.1600269991.2; __jdc=122270672; 3AB9D23F7A4B3C9B=LDSY3E6WRHV3RITCNYJ2HG7E2RVNRUCIX4MWRJTW4EZZENZCTC47O5GJZHSBZUKJM3IOJWMQ6J2YFJAZUCZPW6SOIA; shshshfp=1a3704f42228aa044de34a81ee616ef1; qrsc=3'}

调用requests.get函数爬取网页源代码

r=requests.get(url,headers=header)

此时可以打印出来看看是否成功

print(r.text)

显示如下图即证明爬取源代码成功
在这里插入图片描述

5.提取商品名称

由于我们是要寻找笔记本的商品名称,所以光爬取冗长的网页源代码还不够

调用re.findall函数来进行搜索和提取

tlt = re.findall(r'\<em\>.*笔记本.*\<\/em\>', r.text)
print(tlt)
len(tlt)

r’<em>.*笔记本.*</em>'是正则表达式,表示模糊搜索<em>标签中含有……笔记本……的语句
并写入tlt列表
len(tlt)表示输出tlt列表的长度,即代表了找到的元素的个数

运行正确时结果如下
在这里插入图片描述
成功得到笔记本商品名称列表

6.完整代码

import re
import requests
url='https://search.jd.com/Search?keyword=%E7%AC%94%E8%AE%B0%E6%9C%AC&enc=utf-8&spm=2.1.1'
header = {'referer':'https://diannao.jd.com/',
         'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.81 Safari/537.36 SE 2.X MetaSr 1.0',
         'cookie':'shshshfpa=9529b92b-1cf0-6aea-4efb-869908d26320-1577165936; __jdv=122270672|www.sogou.com|-|referral|-|1599113777053; __jdu=1599113777051548192284; areaId=1; ipLoc-djd=1-2901-0-0; shshshfpb=pUb0V0GoYkEqEQAYC78QhtA%3D%3D; rkv=V0600; PCSYCityID=CN_110000_110100_110114; __jda=122270672.1599113777051548192284.1599113777.1599113777.1600269991.2; __jdc=122270672; 3AB9D23F7A4B3C9B=LDSY3E6WRHV3RITCNYJ2HG7E2RVNRUCIX4MWRJTW4EZZENZCTC47O5GJZHSBZUKJM3IOJWMQ6J2YFJAZUCZPW6SOIA; shshshfp=1a3704f42228aa044de34a81ee616ef1; qrsc=3'}
r=requests.get(url,headers=header)
#r.encoding=r.apparent_encoding
print(r.text)

tlt = re.findall(r'\<em\>.*笔记本.*\<\/em\>', r.text)
print(tlt)
len(tlt)

感谢阅读

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值