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中if语句的嵌套用法
May 14 Python
python检查字符串是否是正确ISBN的方法
Jul 11 Python
python编程嵌套函数实例代码
Feb 11 Python
Python内置模块logging用法实例分析
Feb 12 Python
对Python字符串中的换行符和制表符介绍
May 03 Python
Python实现获取邮箱内容并解析的方法示例
Jun 16 Python
python解决字符串倒序输出的问题
Jun 25 Python
python实现根据指定字符截取对应的行的内容方法
Oct 23 Python
django云端留言板实例详解
Jul 22 Python
基于Python+Appium实现京东双十一自动领金币功能
Oct 31 Python
利用keras加载训练好的.H5文件,并实现预测图片
Jan 24 Python
Python使用tkinter实现小时钟效果
Feb 22 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
phpBB BBcode处理的漏洞
2006/10/09 PHP
php实现不通过扩展名准确判断文件类型的方法【finfo_file方法与二进制流】
2017/04/18 PHP
PHP实现的支付宝支付功能示例
2019/03/26 PHP
javascript 面向对象编程基础:封装
2009/08/21 Javascript
jQuery ui1.7 dialog只能弹出一次问题
2009/08/27 Javascript
js弹窗代码 可以指定弹出间隔
2010/07/03 Javascript
自制基于jQuery的智能提示插件一枚
2011/02/18 Javascript
基于jquery创建的一个图片、视频缓冲的效果样式插件
2012/08/28 Javascript
SOSO地图API使用(一)在地图上画圆实现思路与代码
2013/01/15 Javascript
jQuery分别获取选中的复选框值的示例
2014/06/17 Javascript
在JavaScript里防止事件函数高频触发和高频调用的方法
2014/09/06 Javascript
js点击button按钮跳转到另一个新页面
2014/10/10 Javascript
谈谈JavaScript自定义回调函数
2015/10/18 Javascript
Markdown+Bootstrap图片自适应属性详解
2016/05/21 Javascript
JS实现图片延迟加载并淡入淡出效果的简单方法
2016/08/25 Javascript
URL中“#” “?” &“”号的作用浅析
2017/02/04 Javascript
微信小程序支付及退款流程详解
2017/11/30 Javascript
node.js 基于cheerio的爬虫工具的实现(需要登录权限的爬虫工具)
2019/04/10 Javascript
小程序数据通信方法大全(推荐)
2019/04/15 Javascript
vue实现列表拖拽排序的功能
2020/11/02 Javascript
Python3使用requests发闪存的方法
2016/05/11 Python
对python .txt文件读取及数据处理方法总结
2018/04/23 Python
Python接口测试get请求过程详解
2020/02/28 Python
基于Python绘制个人足迹地图
2020/06/01 Python
Python爬虫自动化获取华图和粉笔网站的错题(推荐)
2021/01/08 Python
你不知道的5个HTML5新功能
2016/06/28 HTML / CSS
SkinCeuticals官网:美国药妆品牌
2018/04/19 全球购物
小米乌克兰网上商店:Xiaomi.UA
2019/10/29 全球购物
adidas菲律宾官网:adidas PH
2020/02/07 全球购物
怎样写留学自荐信
2013/11/11 职场文书
团支书竞选演讲稿
2014/04/28 职场文书
三八红旗集体先进事迹材料
2014/05/22 职场文书
个人作风建设自查报告
2014/10/22 职场文书
2015年超市工作总结
2015/04/09 职场文书
具结保证书范本
2015/05/11 职场文书
pytorch finetuning 自己的图片进行训练操作
2021/06/05 Python