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之类的细节
Oct 13 Python
探究python中open函数的使用
Mar 01 Python
python检查URL是否正常访问的小技巧
Feb 25 Python
Python实现将16进制字符串转化为ascii字符的方法分析
Jul 21 Python
Python 通过截图匹配原图中的位置(opencv)实例
Aug 27 Python
Python 私有化操作实例分析
Nov 21 Python
使用pyqt 实现重复打开多个相同界面
Dec 13 Python
解决python3插入mysql时内容带有引号的问题
Mar 02 Python
Java爬虫技术框架之Heritrix框架详解
Jul 22 Python
Python 字典一个键对应多个值的方法
Sep 29 Python
基于Django快速集成Echarts代码示例
Dec 01 Python
python 逆向爬虫正确调用 JAR 加密逻辑
Jan 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
学习php笔记 字符串处理
2010/10/19 PHP
php ajax异步读取rss文档数据
2016/03/29 PHP
csdn 批量接受好友邀请
2009/02/19 Javascript
让 JavaScript 轻松支持函数重载 (Part 2 - 实现)
2009/08/04 Javascript
学习JavaScript的最佳方法分享
2011/10/21 Javascript
阻止子元素继承父元素事件具体思路及实现
2013/05/02 Javascript
基于jquery实现的图片在各种分辨率下未知的容器内上下左右居中
2014/05/11 Javascript
7个让JavaScript变得更好的注意事项
2015/01/28 Javascript
JavaScript:Date类型全面解析
2016/05/19 Javascript
JavaScript实现九九乘法表的简单实例
2016/06/07 Javascript
基于JS实现回到页面顶部的五种写法(从实现到增强)
2016/09/03 Javascript
JSON对象 详解及实例代码
2016/10/18 Javascript
IE8利用自带的setCapture和releaseCapture解决iframe的拖拽事件方法
2016/10/25 Javascript
JS失效 提示HTML1114: (UNICODE 字节顺序标记)的代码页 utf-8 覆盖(META 标记)的冲突的代码页 utf-8
2017/06/23 Javascript
基于node.js制作简单爬虫教程
2017/06/29 Javascript
12条写出高质量JS代码的方法
2018/01/07 Javascript
微信公众号平台接口开发 获取微信服务器IP地址方法解析
2019/08/14 Javascript
详解JavaScript中分解数字的三种方法
2021/01/05 Javascript
用Python实现一个简单的能够发送带附件的邮件程序的教程
2015/04/08 Python
使用Python写一个小游戏
2018/04/02 Python
基于python批量处理dat文件及科学计算方法详解
2018/05/08 Python
Python连接Mssql基础教程之Python库pymssql
2018/09/16 Python
将Python字符串生成PDF的实例代码详解
2019/05/17 Python
如何使用Flask-Migrate拓展数据库表结构
2019/07/24 Python
Pycharm 字体大小调整设置的方法实现
2019/09/27 Python
从numpy数组中取出满足条件的元素示例
2019/11/26 Python
python中的线程threading.Thread()使用详解
2019/12/17 Python
解决Pycharm的项目目录突然消失的问题
2020/01/20 Python
amazeui模态框弹出后立马消失并刷新页面
2020/08/19 HTML / CSS
意大利在线药房:Saninforma
2021/02/11 全球购物
一个SQL面试题
2014/08/21 面试题
什么是反射?如何实现反射?
2016/07/25 面试题
中专生毕业自我鉴定
2013/11/01 职场文书
公司表扬信格式
2015/05/04 职场文书
《静夜思》教学反思
2016/02/17 职场文书
使用Django框架创建项目
2022/06/10 Python