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 相关文章推荐
浅析Python中的多进程与多线程的使用
Apr 07 Python
总结Python编程中函数的使用要点
Mar 20 Python
Python工厂函数用法实例分析
May 14 Python
使用Python编写Prometheus监控的方法
Oct 15 Python
python反编译学习之字节码详解
May 19 Python
django框架F&Q 聚合与分组操作示例
Dec 12 Python
Python操作redis和mongoDB的方法
Dec 19 Python
python实现密码强度校验
Mar 18 Python
Python实现LR1文法的完整实例代码
Oct 25 Python
Python3+SQLAlchemy+Sqlite3实现ORM教程
Feb 16 Python
解决PDF 转图片时丢文字的一种可能方式
Mar 04 Python
Python爬取用户观影数据并分析用户与电影之间的隐藏信息!
Jun 29 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
php对gzip文件或者字符串解压实例参考
2008/07/25 PHP
php中cookie的使用方法
2014/03/29 PHP
php中多维数组按指定value排序的实现代码
2014/08/19 PHP
Yii实现的多级联动下拉菜单
2016/07/13 PHP
javascript 保存文件到本地实现方法
2012/11/29 Javascript
js运动框架_包括图片的淡入淡出效果
2013/05/11 Javascript
jQuery中parent()方法用法实例
2015/01/07 Javascript
javascript批量修改文件编码格式的方法
2015/01/27 Javascript
javascript中数组方法汇总
2015/07/07 Javascript
纯jquery实现模仿淘宝购物车结算
2015/08/20 Javascript
javascript跨域的方法汇总
2015/10/23 Javascript
详解JavaScript的表达式与运算符
2015/11/30 Javascript
js获取鼠标位置实例详解
2015/12/09 Javascript
基于JavaScript实现网页倒计时自动跳转代码
2015/12/28 Javascript
jquery淡入淡出效果简单实例
2016/01/14 Javascript
JavaScript SweetAlert插件实现超酷消息警告框
2016/01/28 Javascript
基于javascript实现的购物商城商品倒计时实例
2016/12/11 Javascript
jQuery+SpringMVC中的复选框选择与传值实例
2018/01/08 jQuery
vue项目中导入swiper插件的方法
2018/01/30 Javascript
vue使用中的内存泄漏【推荐】
2018/07/10 Javascript
微信小程序实现单选功能
2018/10/30 Javascript
[02:38]DOTA2 夜魇暗潮2020活动介绍官方视频
2020/11/04 DOTA
35个Python编程小技巧
2014/04/01 Python
Python中的with...as用法介绍
2015/05/28 Python
python算法与数据结构之单链表的实现代码
2019/06/27 Python
windows中安装Python3.8.0的实现方法
2019/11/19 Python
django之从html页面表单获取输入的数据实例
2020/03/16 Python
pycharm部署、配置anaconda环境的教程
2020/03/24 Python
CSS3实现伪类hover离开时平滑过渡效果示例
2017/08/10 HTML / CSS
html5借用repeating-linear-gradient实现一把刻度尺(ruler)
2019/09/09 HTML / CSS
硅酸盐工业控制专业应届生求职信
2013/11/02 职场文书
学生请假条
2014/04/11 职场文书
财务人员担保书
2014/05/13 职场文书
因个人工作失误检讨书
2019/06/21 职场文书
2019感恩宣传标语!
2019/07/05 职场文书
python 用递归实现通用爬虫解析器
2021/04/16 Python