Python爬虫实现抓取京东店铺信息及下载图片功能示例


Posted in Python onAugust 07, 2018

本文实例讲述了Python爬虫实现抓取京东店铺信息及下载图片功能。分享给大家供大家参考,具体如下:

这个是抓取信息的

from bs4 import BeautifulSoup
import requests
url = 'https://list.tmall.com/search_product.htm?q=%CB%AE%BA%F8+%C9%D5%CB%AE&type=p&vmarket=&spm=875.7931836%2FA.a2227oh.d100&from=mallfp..pc_1_searchbutton'
response = requests.get(url)                          #解析网页
soup = BeautifulSoup(response.text,'lxml')                   #.text将解析到的网页可读
storenames = soup.select('#J_ItemList > div > div > p.productTitle > a')    #选择出商店的信息
prices = soup.select('#J_ItemList > div > div > p.productPrice > em')     #选择出价格的信息
sales = soup.select('#J_ItemList > div > div > p.productStatus > span > em')  #选择出销售额的信息
for storename, price, sale in zip(storenames,prices,sales):
  storename = storename.get_text().strip()   #用get_text()方法筛选出标签中的文本信息,由于筛选结果有换行符\n所以用strip()将换行符去掉
  price = price.get_text()
  sale = sale.get_text()
  print('商店名:%-40s价格:%-40s销售额:%s'%(storename,price,sale))   #使打印出来的信息规范
  print('----------------------------------------------------------------------------------------------')

这个是下载图片的

from bs4 import BeautifulSoup
import requests
import urllib.request
url = 'https://list.tmall.com/search_product.htm?q=%CB%AE%BA%F8+%C9%D5%CB%AE&type=p&vmarket=&spm=875.7931836%2FA.a2227oh.d100&from=mallfp..pc_1_searchbutton'
response = requests.get(url)
soup = BeautifulSoup(response.text, 'lxml')
imgs = soup.select('#J_ItemList > div > div > div.productImg-wrap > a > img')
a = 1
for i in imgs:
  if(i.get('src')==None):
    break
  img = 'http:'+i.get('src') #这里废了好长的时间,原来网站必须要有http:的
  #print(img)
  urllib.request.urlretrieve(img,'%s.jpg'%a, None,)
  a = a+1

ps:

1.选择信息的时候用css

2.用get_text()方法筛选出标签中的文本信息

3.striplstriprstrip的用法:

Python中的strip用于去除字符串的首尾字符;同理,lstrip用于去除左边的字符;rstrip用于去除右边的字符。

这三个函数都可传入一个参数,指定要去除的首尾字符。

需要注意的是,传入的是一个字符数组,编译器去除两端所有相应的字符,直到没有匹配的字符,比如:

theString = 'saaaay yes no yaaaass'
print theString.strip('say')

theString依次被去除首尾在['s','a','y']数组内的字符,直到字符在不数组内。所以,输出的结果为:

yes no

比较简单吧,lstriprstrip原理是一样的。

注意:当没有传入参数时,是默认去除首尾空格和换行符的。

theString = 'saaaay yes no yaaaass'
print theString.strip('say')
print theString.strip('say ') #say后面有空格
print theString.lstrip('say')
print theString.rstrip('say')

运行结果:

yes no
es no
yes no yaaaass
saaaay yes no

更多关于Python相关内容可查看本站专题:《Python Socket编程技巧总结》、《Python正则表达式用法总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
在Windows8上的搭建Python和Django环境
Jul 03 Python
Python使用dis模块把Python反编译为字节码的用法详解
Jun 14 Python
快速查询Python文档方法分享
Dec 27 Python
Python异常对代码运行性能的影响实例解析
Feb 08 Python
python pandas实现excel转为html格式的方法
Oct 23 Python
Python字典推导式将cookie字符串转化为字典解析
Aug 10 Python
Python之指数与E记法的区别详解
Nov 21 Python
python取均匀不重复的随机数方式
Nov 27 Python
pycharm不能运行.py文件的解决方法
Feb 12 Python
django 解决扩展自带User表遇到的问题
May 14 Python
PyCharm常用配置和常用插件(小结)
Feb 06 Python
Python机器学习算法之决策树算法的实现与优缺点
May 13 Python
Django添加favicon.ico图标的示例代码
Aug 07 #Python
Python实现的json文件读取及中文乱码显示问题解决方法
Aug 06 #Python
Python装饰器模式定义与用法分析
Aug 06 #Python
Python实现的建造者模式示例
Aug 06 #Python
Django中日期处理注意事项与自定义时间格式转换详解
Aug 06 #Python
python 地图经纬度转换、纠偏的实例代码
Aug 06 #Python
Anaconda下配置python+opencv+contribx的实例讲解
Aug 06 #Python
You might like
linux下使用crontab实现定时PHP计划任务失败的原因分析
2014/07/05 PHP
jquery+php实现导出datatables插件数据到excel的方法
2015/07/06 PHP
PHP编程文件处理类SplFileObject和SplFileInfo用法实例分析
2017/07/22 PHP
Laravel 队列使用的实现
2019/01/08 PHP
php策略模式简单示例分析【区别于工厂模式】
2019/09/25 PHP
PHP 计算两个时间段之间交集的天数示例
2019/10/24 PHP
你必须知道的Javascript知识点之"深入理解作用域链"的介绍
2013/04/23 Javascript
JQuery实现当鼠标停留在某区域3秒后自动执行
2014/09/09 Javascript
javascript实现博客园页面右下角返回顶部按钮
2015/02/22 Javascript
JS实现FLASH幻灯片图片切换效果的方法
2015/03/04 Javascript
JavaScript实现添加及删除事件的方法小结
2015/08/04 Javascript
js代码实现无缝滚动(文字和图片)
2015/08/20 Javascript
AngularJS使用ngMessages进行表单验证
2015/12/27 Javascript
详解AngularJs ui-router 路由的简单介绍
2017/04/26 Javascript
原生JavaScript实现Ajax异步请求
2017/11/19 Javascript
解决vue打包项目后刷新404的问题
2018/03/06 Javascript
微信小程序自定义多选事件的实现代码
2018/05/17 Javascript
用vue快速开发app的脚手架工具
2018/06/11 Javascript
JS实现简单的抽奖转盘效果示例
2019/02/16 Javascript
js 递归json树实现根据子id查父id的方法分析
2019/11/08 Javascript
axios封装与传参示例详解
2020/10/18 Javascript
Python3 能振兴 Python的原因分析
2014/11/28 Python
python文件操作之目录遍历实例分析
2015/05/20 Python
详解python使用递归、尾递归、循环三种方式实现斐波那契数列
2018/01/16 Python
Python+selenium实现自动循环扔QQ邮箱漂流瓶
2018/05/29 Python
Django 内置权限扩展案例详解
2019/03/04 Python
解决python3中的requests解析中文页面出现乱码问题
2019/04/19 Python
Python学习笔记之字符串和字符串方法实例详解
2019/08/22 Python
tensorflow 实现打印pb模型的所有节点
2020/01/23 Python
利用python爬取有道词典的方法
2020/12/08 Python
美国在线自行车商店:Jenson USA
2018/05/22 全球购物
银行门卫岗位职责
2013/12/29 职场文书
《中国梦我的梦》大学生演讲稿
2014/08/20 职场文书
解除劳动合同协议书
2014/09/17 职场文书
关于做家务的心得体会
2016/01/23 职场文书
「SHOW BY ROCK!!」“雫シークレットマインド”组合单曲MV公开
2022/03/21 日漫