简单爬取京东商品名称、价格(仅供学习)_爬京东价格-程序员宅基地

技术标签: python  Python  

以下内容是原创,仅供初学者学习用,京东能够开放给我们学习实在不容易,请模拟人类的行为学习爬取。

一 爬取的Python源码

#爬取的代码
import requests
import re
import time
goods='书包'  #搜索关键字
depth = 1  #搜索深度为2,即爬取第1页,第2页
start_url = 'https://search.jd.com/Search?keyword='+ goods+'&enc=utf-8&wq='+goods
infoList=[]
hd = {
   
    'user-agent':'Mozilla/5.0'}
for j in range(depth):  #对每一个页面进行处理,使用for循环
    try:
        url = start_url + '&page=' + str(j) # 组合成带翻页功能的url https://search.jd.com/Search?keyword=书包=utf-8&wq=书包&page=1
        try:
            r = requests.get(url,headers=hd,timeout=30)
            r.raise_for_status()
            r.encoding=r.apparent_encoding  #把获取到的页面信息 替换成utf-8信息,这样就不会乱码
            print(r.status_code)
            html = r.text
            print(r.url)
            print(r.text)
        except:
            print("抓取异常")
        try:
            plt = re.findall(r'<em>¥</em><i>.*?\.\d\d',html) #获取商品价格,搜索以<em>¥</em><i>开头,以.数字数字结尾的字符串            
            tlt = re.findall(r'[^(<em>¥</em>)]<em>.*?[\u4e00-\u9fa5].*?</em>',html)  #获取商品名称,搜索以<em>开始,以遇到的第一个</em>结尾的字符串,且 第一个字符是(<em>¥</em>)]<em>除外        
            for i in range(len(plt)):
                price = plt[i].split('<i>')[1]
                title = tlt[i]
                infoList.append([price,title]) # append() 方法用于在列表末尾添加新的对象。
        except: #让程序不会因为异常执行而溢出
            print("分析异常")
    except:
        continue  #如果某一个页面解析出了entity,那么继续解析下一个页面。
    time.sleep(2) #注意,为了长久学习,要模拟人类的输入,停留2秒
    
tplt = "{:^10}\t{:^10}\t{:^20}" #设定一个print模板,用大括号{}来定义槽函数
print(tplt.format("序号","价格","商品名称"))# Python2.6 开始,新增了一种格式化字符串的函数 str.format(),它增强了字符串格式化的功能。format用法举例:print("网站名:{name}, 地址 {url}".format(name="菜鸟教程", url="www.runoob.com"))
count=0
for g in infoList:
     count = count +1
     print(tplt.format(count,g[0],g[1])) #打印商品价格、名称,字符串没做处理

二 爬取到的信息:
序号 价格 商品名称
1 49.00 多功能学生挂书袋可调课桌挂袋书本收纳袋 学生挂书袋 书挂袋书桌收纳袋文件文具挂书袋课桌神器挂架 蓝色
2 99.00 稻草人双肩包男女14/15.6英寸大容量笔记本电脑包多功能旅行出差背包防泼水商务休闲学生书包50470黑色
3 69.00 双肩包男士背包大容量时尚休闲商务旅行笔记本电脑包高中大学生书包男潮流USb充电包包65199 黑色
4 159.00 七匹狼双肩包 背包男15.6英寸电脑包商务休闲通勤防泼水牛津布书包 黑色B0301872-201
5 168.00 瑞士SWICKY瑞驰双肩包男士背包新款大容量休闲商务旅行笔记本电脑包学生书包出差包USb充电包 黑色 大号带usb送多功能刀+锁
6 169.00 七匹狼背包男 牛津布双肩包休闲简约15.6寸电脑包时尚潮流旅行包大容量学生书包男 黑色B0301062-201
7 69.80 书包男士夜光双肩背包中小学生男韩版休闲电脑包大学usb旅行包 USB大号音乐小子+笔袋+防盗锁
8 159.00 第九城V.NINE 小学生书包男女孩儿童护脊书包1-3-6年级减负双肩背包初中学生休闲书包 VD9BV33972J 蓝配粉
9 79.00 京东超市第九城V.NINE 双肩包男女卡通印花书包六件套帆布休闲背包校园中小学生书包 VB7BV32884J 粉色套装
10 59.90 2020新款书包男背包女初中生开学包休闲简约时尚潮流帆布包百搭高中学生 黑色
11 149.00 波斯丹顿双肩包男士商务休闲潮流帆布学生校园运动书包大容量旅行背包15.6英寸笔记本电脑包 男 深灰色
12 88.00 梵者 新款双肩包男潮牌休闲帆布旅行包韩版男士背包商务电脑包高中初中大学生书包ins运动潮流 黑色
13 149.00 爱登堡 双肩包背包男士商务14寸电脑包休闲旅行包韩版多功能时尚潮流学生15.6寸笔记本包 黑色爆款 收藏加购 优先发货
14 159.00 第九城V.NINE 双肩包女士防泼水旅行背包大容量15.6英寸电脑包校园情侣款大中学生书包男 VD7BV32881J 粉配灰
15 229.00 七匹狼双肩包 男士背包电脑包15.6英寸笔记本休闲商务旅行学生书包黑色B248211-01IH1
16 79.00 耐拓 小学生书包男孩轻便减压1-3-6年级儿童书包 N897宝蓝大号3-6年级 均
17 69.00 双肩包男士背包新款大容量休闲商务旅行笔记本电脑包学生书包出差包 黑色大号
18 159.00 第九城V.NINE 双肩包男士大容量15.6英寸电脑包多功能旅行背包情侣款学生书包女 VD7BV33886J 米灰
19 355.00 七匹狼包商务双肩包男韩版潮 大中学生书包背包 男包旅行包电脑包 黑色【五层款】
20 89.90 迪士尼(Disney)小学生书包男米奇中学生双肩背包男女3-4-6年级儿童书包 DB96251深蓝
21 69.00 丛林鸟(JUNGLE BIRD)书包女韩版初高中小学生简约森系百搭尼龙双肩包大容量背包 黑色
22 69.00 丛林鸟 书包男韩版原宿ulzzang初高中大学生时尚潮流双肩包女大容量黑背包 黑色【送鸭子挂件】
23 99.00 京东超市十字勋章 瑞士双肩包男15.6英寸笔记本电脑包商务多功能大容量出差背包旅行包防泼水休闲学生书包CR-9001黑色
24 229.00 Dickies 潮流休闲双肩包男女学生书包大容量帆布包学院风防水14/15.6英寸电脑包C028 黑色经典款
25 188.00 李宁官方男子双肩包背包书包训练系列ABSP388 黑-1(300180520mm)) 000
26 79.00 双肩包潮牌书包男百搭时尚潮流背包青年韩版简约文艺初中大学生书包 黑色 (433017高宽厚)送挂饰香包
27 28.00 小米(MI)炫彩小背包男女情侣双肩包简约便携休闲旅游包旅行包学生小书包 小米炫彩小背包 黑色
28 59.00 格比森双肩包 男士背包15.6英寸笔记本电脑包初高中大学生小学生书包男女新款 帆布防波水 深灰色
29 55.00 蒂梵森2020款双肩男士商务休闲旅行背包大容量15.6寸笔记本电脑包潮流高中大学生书包男女外置USb 灰色
30 59.00 2020新款书包男女韩版 学院风初高中学生书包潮流男款背包双肩包个性时尚休闲电脑包 1810黑色

三 附上爬取的页面源码的一部分,这样可以对照着输出学习用

<div id="J_main" class="g-main2">
	<div class="m-list">
		<div class="ml-wrap">			<div id="J_filter" class="filter">
				<div class="f-line top">
					<div class="f-sort">
<a class="curr" href="javascript:;"><span class="fs-tit">综合</span><em class="fs-down"><i class="arrow"></i></em></a>
						<a class="" href="javascript:;"><span class="fs-tit">销量</span><em class="fs-down"><i class="arrow"></i></em></a>
						<a class="" href="javascript:;"><span class="fs-tit">评论数</span><em class="fs-down"><i class="arrow"></i></em></a>
						<a class="" href="javascript:;"><span class="fs-tit">新品</span><em class="fs-down"><i class="arrow"></i></em></a>
						<a class="" href="javascript:;"><span class="fs-tit">价格</span><em class="fs-up"><i class="arrow-top"></i><i class="arrow-bottom"></i></em></a>
					</div>
<div class="f-datagrid"><a href="javascript:;" class="fdg-item" data-range="0-55" data-tips="10%的用户喜欢的价位"><span class="def-bar" style="height:21%"></span></a><a href="javascript:;" class="fdg-item" data-range="55-107" data-tips="30%的用户喜欢的价位"><span class="def-bar" style="height:62%"></span></a><a href="javascript:;" class="fdg-item" data-range="107-198" data-tips="41%的用户喜欢的价位"><span class="def-bar" style="height:85%"></span></a><a href="javascript:;" class="fdg-item" data-range="198-321" data-tips="13%的用户喜欢的价位"><span class="def-bar" style="height:27%"></span></a><a href="javascript:;" class="fdg-item" data-range="321-¥" data-tips="6%的用户喜欢的价位"><span class="def-bar" style="height:12%"></span></a></div>					<div id="J_selectorPrice" class="f-price">
						<div class="f-price-set">
							<div class
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_45563996/article/details/105467856

智能推荐

攻防世界_难度8_happy_puzzle_攻防世界困难模式攻略图文-程序员宅基地

文章浏览阅读645次。这个肯定是末尾的IDAT了,因为IDAT必须要满了才会开始一下个IDAT,这个明显就是末尾的IDAT了。,对应下面的create_head()代码。,对应下面的create_tail()代码。不要考虑爆破,我已经试了一下,太多情况了。题目来源:UNCTF。_攻防世界困难模式攻略图文

达梦数据库的导出(备份)、导入_达梦数据库导入导出-程序员宅基地

文章浏览阅读2.9k次,点赞3次,收藏10次。偶尔会用到,记录、分享。1. 数据库导出1.1 切换到dmdba用户su - dmdba1.2 进入达梦数据库安装路径的bin目录,执行导库操作  导出语句:./dexp cwy_init/[email protected]:5236 file=cwy_init.dmp log=cwy_init_exp.log 注释:   cwy_init/init_123..._达梦数据库导入导出

js引入kindeditor富文本编辑器的使用_kindeditor.js-程序员宅基地

文章浏览阅读1.9k次。1. 在官网上下载KindEditor文件,可以删掉不需要要到的jsp,asp,asp.net和php文件夹。接着把文件夹放到项目文件目录下。2. 修改html文件,在页面引入js文件:<script type="text/javascript" src="./kindeditor/kindeditor-all.js"></script><script type="text/javascript" src="./kindeditor/lang/zh-CN.js"_kindeditor.js

STM32学习过程记录11——基于STM32G431CBU6硬件SPI+DMA的高效WS2812B控制方法-程序员宅基地

文章浏览阅读2.3k次,点赞6次,收藏14次。SPI的详情简介不必赘述。假设我们通过SPI发送0xAA,我们的数据线就会变为10101010,通过修改不同的内容,即可修改SPI中0和1的持续时间。比如0xF0即为前半周期为高电平,后半周期为低电平的状态。在SPI的通信模式中,CPHA配置会影响该实验,下图展示了不同采样位置的SPI时序图[1]。CPOL = 0,CPHA = 1:CLK空闲状态 = 低电平,数据在下降沿采样,并在上升沿移出CPOL = 0,CPHA = 0:CLK空闲状态 = 低电平,数据在上升沿采样,并在下降沿移出。_stm32g431cbu6

计算机网络-数据链路层_接收方收到链路层数据后,使用crc检验后,余数为0,说明链路层的传输时可靠传输-程序员宅基地

文章浏览阅读1.2k次,点赞2次,收藏8次。数据链路层习题自测问题1.数据链路(即逻辑链路)与链路(即物理链路)有何区别?“电路接通了”与”数据链路接通了”的区别何在?2.数据链路层中的链路控制包括哪些功能?试讨论数据链路层做成可靠的链路层有哪些优点和缺点。3.网络适配器的作用是什么?网络适配器工作在哪一层?4.数据链路层的三个基本问题(帧定界、透明传输和差错检测)为什么都必须加以解决?5.如果在数据链路层不进行帧定界,会发生什么问题?6.PPP协议的主要特点是什么?为什么PPP不使用帧的编号?PPP适用于什么情况?为什么PPP协议不_接收方收到链路层数据后,使用crc检验后,余数为0,说明链路层的传输时可靠传输

软件测试工程师移民加拿大_无证移民,未受过软件工程师的教育(第1部分)-程序员宅基地

文章浏览阅读587次。软件测试工程师移民加拿大 无证移民,未受过软件工程师的教育(第1部分) (Undocumented Immigrant With No Education to Software Engineer(Part 1))Before I start, I want you to please bear with me on the way I write, I have very little gen...

随便推点

Thinkpad X250 secure boot failed 启动失败问题解决_安装完系统提示secureboot failure-程序员宅基地

文章浏览阅读304次。Thinkpad X250笔记本电脑,装的是FreeBSD,进入BIOS修改虚拟化配置(其后可能是误设置了安全开机),保存退出后系统无法启动,显示:secure boot failed ,把自己惊出一身冷汗,因为这台笔记本刚好还没开始做备份.....根据错误提示,到bios里面去找相关配置,在Security里面找到了Secure Boot选项,发现果然被设置为Enabled,将其修改为Disabled ,再开机,终于正常启动了。_安装完系统提示secureboot failure

C++如何做字符串分割(5种方法)_c++ 字符串分割-程序员宅基地

文章浏览阅读10w+次,点赞93次,收藏352次。1、用strtok函数进行字符串分割原型: char *strtok(char *str, const char *delim);功能:分解字符串为一组字符串。参数说明:str为要分解的字符串,delim为分隔符字符串。返回值:从str开头开始的一个个被分割的串。当没有被分割的串时则返回NULL。其它:strtok函数线程不安全,可以使用strtok_r替代。示例://借助strtok实现split#include <string.h>#include <stdio.h&_c++ 字符串分割

2013第四届蓝桥杯 C/C++本科A组 真题答案解析_2013年第四届c a组蓝桥杯省赛真题解答-程序员宅基地

文章浏览阅读2.3k次。1 .高斯日记 大数学家高斯有个好习惯:无论如何都要记日记。他的日记有个与众不同的地方,他从不注明年月日,而是用一个整数代替,比如:4210后来人们知道,那个整数就是日期,它表示那一天是高斯出生后的第几天。这或许也是个好习惯,它时时刻刻提醒着主人:日子又过去一天,还有多少时光可以用于浪费呢?高斯出生于:1777年4月30日。在高斯发现的一个重要定理的日记_2013年第四届c a组蓝桥杯省赛真题解答

基于供需算法优化的核极限学习机(KELM)分类算法-程序员宅基地

文章浏览阅读851次,点赞17次,收藏22次。摘要:本文利用供需算法对核极限学习机(KELM)进行优化,并用于分类。

metasploitable2渗透测试_metasploitable2怎么进入-程序员宅基地

文章浏览阅读1.1k次。一、系统弱密码登录1、在kali上执行命令行telnet 192.168.26.1292、Login和password都输入msfadmin3、登录成功,进入系统4、测试如下:二、MySQL弱密码登录:1、在kali上执行mysql –h 192.168.26.129 –u root2、登录成功,进入MySQL系统3、测试效果:三、PostgreSQL弱密码登录1、在Kali上执行psql -h 192.168.26.129 –U post..._metasploitable2怎么进入

Python学习之路:从入门到精通的指南_python人工智能开发从入门到精通pdf-程序员宅基地

文章浏览阅读257次。本文将为初学者提供Python学习的详细指南,从Python的历史、基础语法和数据类型到面向对象编程、模块和库的使用。通过本文,您将能够掌握Python编程的核心概念,为今后的编程学习和实践打下坚实基础。_python人工智能开发从入门到精通pdf