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获得时间的实例说明
Mar 25 Python
跟老齐学Python之折腾一下目录
Oct 24 Python
Python的Bottle框架中返回静态文件和JSON对象的方法
Apr 30 Python
基于Python的文件类型和字符串详解
Dec 21 Python
JupyterNotebook设置Python环境的方法步骤
Dec 03 Python
详解python方法之绑定方法与非绑定方法
Aug 17 Python
python识别验证码的思路及解决方案
Sep 13 Python
Python 利用Entrez库筛选下载PubMed文献摘要的示例
Nov 24 Python
selenium自动化测试入门实战
Dec 21 Python
Python 中如何使用 virtualenv 管理虚拟环境
Jan 21 Python
Python编程源码报错解决方法总结经验分享
Oct 05 Python
python ConfigParser库的使用及遇到的坑
Feb 12 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
thinkphp整合微信支付代码分享
2016/11/24 PHP
CodeIgniter框架基本增删改查操作示例
2017/03/23 PHP
JS 添加网页桌面快捷方式的代码详细整理
2012/12/27 Javascript
JS实现仿新浪微博发布内容为空时提示功能代码
2015/08/19 Javascript
js动态生成Html元素实现Post操作(createElement)
2015/09/14 Javascript
JS实现获取键盘按下的按键并显示在页面上的方法
2015/11/04 Javascript
jQuery模拟360浏览器切屏效果幻灯片(附demo源码下载)
2016/01/29 Javascript
EasyUI Combobox设置默认值 获取text的方法
2016/11/28 Javascript
Vue 按键修饰符处理事件的方法
2018/05/04 Javascript
详解基于Vue2.0实现的移动端弹窗(Alert, Confirm, Toast)组件
2018/08/02 Javascript
基于javascript处理nginx请求过程详解
2020/07/07 Javascript
python自动化测试实例解析
2014/09/28 Python
Python中关于字符串对象的一些基础知识
2015/04/08 Python
python学习数据结构实例代码
2015/05/11 Python
python类装饰器用法实例
2015/06/04 Python
python常见的格式化输出小结
2016/12/15 Python
Python获取文件所在目录和文件名的方法
2017/01/12 Python
Python爬虫实现简单的爬取有道翻译功能示例
2018/07/13 Python
使用python3调用wxpy模块监控linux日志并定时发送消息给群组或好友
2019/06/05 Python
django多个APP的urls设置方法(views重复问题解决)
2019/07/19 Python
python中bytes和str类型的区别
2019/10/21 Python
Python将列表中的元素转化为数字并排序的示例
2019/12/25 Python
Python使用OpenPyXL处理Excel表格
2020/07/02 Python
Python grpc超时机制代码示例
2020/09/14 Python
用python制作个音乐下载器
2021/01/30 Python
Html5 postMessage实现跨域消息传递
2016/03/11 HTML / CSS
马来西亚太阳镜、眼镜和隐形眼镜网上商店:Focus Point
2018/12/13 全球购物
Java方面的关于数组和继承的笔面试题
2015/09/18 面试题
PPP协议组成及简述协议协商的基本过程
2015/05/28 面试题
甜品店创业计划书
2014/08/14 职场文书
无私奉献演讲稿
2014/09/04 职场文书
奖励通知
2015/04/22 职场文书
农村老人去世追悼词
2015/06/23 职场文书
36个正则表达式(开发效率提高80%)
2021/11/17 Javascript
关于vue-router-link选择样式设置
2022/04/30 Vue.js
js作用域及作用域链工作引擎
2022/07/07 Javascript