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的Django框架中的表单处理示例
Jul 17 Python
浅谈python对象数据的读写权限
Sep 12 Python
利用Python破解验证码实例详解
Dec 08 Python
python将控制台输出保存至文件的方法
Jan 07 Python
python 魔法函数实例及解析
Sep 25 Python
Python 2种方法求某个范围内的所有素数(质数)
Jan 31 Python
Tensorflow限制CPU个数实例
Feb 06 Python
python梯度下降算法的实现
Feb 24 Python
python+selenium+chromedriver实现爬虫示例代码
Apr 10 Python
翻转数列python实现,求前n项和,并能输出整个数列的案例
May 03 Python
Python流程控制语句的深入讲解
Jun 15 Python
Python中相见恨晚的技巧
Apr 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
javascript的onchange事件与jQuery的change()方法比较
2009/09/28 Javascript
服务器端的JavaScript脚本 Node.js 使用入门
2012/03/07 Javascript
函数式 JavaScript(一)简介
2014/07/07 Javascript
实现JavaScript的组成----BOM和DOM详解
2016/05/18 Javascript
基于JS代码实现图片在页面中旋转效果
2016/06/16 Javascript
在javascript中,null>=0 为真,null==0却为假,null的值详解
2017/02/22 Javascript
jQuery遍历节点方法汇总(推荐)
2017/05/13 jQuery
基于 webpack2 实现的多入口项目脚手架详解
2017/06/26 Javascript
纯js封装的ajax功能函数与用法示例
2018/05/14 Javascript
详解vue.js下引入百度地图jsApi的两种方法
2018/07/27 Javascript
解决Vue + Echarts 使用markLine标线(precision精度问题)
2020/07/20 Javascript
vue中el-input绑定键盘按键(按键修饰符)
2020/07/22 Javascript
vue的hash值原理也是table切换实例代码
2020/12/14 Vue.js
Python中unittest模块做UT(单元测试)使用实例
2015/06/12 Python
Python使用pyautogui模块实现自动化鼠标和键盘操作示例
2018/09/04 Python
python3 拼接字符串的7种方法
2018/09/12 Python
python得到windows自启动列表的方法
2018/10/14 Python
Python功能点实现:函数级/代码块级计时器
2019/01/02 Python
解决Python selenium get页面很慢时的问题
2019/01/30 Python
Python 获取numpy.array索引值的实例
2019/12/06 Python
Django ORM 查询表中某列字段值的方法
2020/04/30 Python
使用python脚本自动生成K8S-YAML的方法示例
2020/07/12 Python
python3中TQDM库安装及使用详解
2020/11/18 Python
css3的图形3d翻转效果应用示例
2014/04/08 HTML / CSS
厨房工作人员岗位职责
2013/11/15 职场文书
销售会计工作职责
2013/12/02 职场文书
主题实践活动总结
2014/05/08 职场文书
中队活动总结
2014/08/27 职场文书
有子女的离婚协议书怎么写(范本)
2014/09/29 职场文书
2014年幼儿园工作总结
2014/11/10 职场文书
签字仪式主持词
2015/07/03 职场文书
2015大一新生军训感言
2015/08/01 职场文书
给领导敬酒词
2015/08/12 职场文书
小学语文教师研修感悟
2015/11/18 职场文书
高考满分作文赏析(2篇)
2019/08/12 职场文书
MySQL里面的子查询的基本使用
2021/08/02 MySQL