通过本篇博文,介绍一下我对指定信息进行爬取的时候的思路,顺便贴一下代码。

一、首先获取想要爬取的网站的url链接的规则变化

可以看出来该网站页面的url结构简单,变化的只是https://mm.taobao.com/json/request_top_list.htm?page= page的值

二、对网站页面的DOM树的结构进行分析,方便我们获取我们想要的内容信息,

我写了个简单的网页分析脚本analyze.py:用来输出DOM树,方便我后面做筛选.

# -*- coding:utf-8 -*-#模块导入
import requests
from bs4 import BeautifulSoup#想要分析的网站页面
url = "http://mm.taobao.com/json/request_top_list.htm?page=1"
response = requests.get(url)
response.encoding = 'gb2312'
html = response.text #使用lxml解析器进行处理
soup = BeautifulSoup(html, 'lxml')
#把DOM树结构输出
print soup.prettify()
<html><body><div class="list-item"><div class="personal-info"><div class="pic-word"><div class="pic s60"><a class="lady-avatar" href="//mm.taobao.com/687471686.htm" target="_blank"><img alt="" height="60" src="//gtd.alicdn.com/sns_logo/i2/TB1XZ1PQVXXXXaJXpXXSutbFXXX.jpg_60x60.jpg" width="60"/></a></div><p class="top"><a class="lady-name" href="//mm.taobao.com/self/model_card.htm?user_id=687471686" target="_blank">田媛媛</a><em><strong>27</strong>岁</em><span>广州市</span><span class="friend-follow J_FriendFollow" data-custom="type=14&amp;app_id=12052609" data-group="" data-userid="687471686">加关注</span></p><p><em>平面模特 设计师 T台、展模特</em><em><strong>164433</strong>粉丝</em></p></div><div class="pic w610"><a href="//mm.taobao.com/photo-687471686-10000854046.htm?pic_id=10003369435" target="_blank"><img data-ks-lazyload="//img.alicdn.com/imgextra/i4/687471686/TB1TORaKFXXXXc0aXXXXXXXXXXX_!!2-tstar.png" src="//assets.alicdn.com/kissy/1.0.0/build/imglazyload/spaceball.gif"/></a></div></div><div class="list-info"><div class="popularity"><dl><dt>1</dt><dd><span>总积分:</span>60742</dd></dl></div><ul class="info-detail"><li>新增积分:<strong>529</strong></li><li>好评率:<strong>90.0</strong>%</li><li>导购照片:<strong>888</strong>张</li><li>签约数量:<strong>406</strong>次</li></ul><p class="description">你还在为上下衣物搭配而苦恼么..你还在为出门不知道穿什么而烦躁么 ..vvip女神教你一键(_)美美哒 ! 不需要过多的搭配.不需要为不协调而苦恼 ..我们为你选好让你出门美美哒!!</p><div class="J_LikeIt" photo-favor-count="0" photo-id="687471686_10003369435"><div class="mm-photolike"><a class="mm-photolike-btn" data-count="0" data-targetid="687471686_10003369435" href="javascript:void(0)">喜欢</a><var class="mm-photolike-count radius-3">0</var></div></div></div></div><input id="J_Totalpage" type="hidden" value="4316"/></body>
</html>

分析的时候我们其实可以只截取一个人的信息,因为输出太多。每个人的结构都是固定的,方便分析!

三、程序代码:

# -*- coding:utf-8 -*-import requests
from bs4 import BeautifulSoup
import sys
import re
reload(sys)
sys.setdefaultencoding('utf-8')for num in range(1,4300):try:URL = 'http://mm.taobao.com/json/request_top_list.htm?page=%d' % num#print "现在爬取的网站url是:" + URLresponse = requests.get(URL) response.encoding = 'gb2312'text = response.text soup = BeautifulSoup(text, 'lxml') for model in soup.select(".list-item"):try:model_id =  model.find('span', {'class': 'friend-follow J_FriendFollow'})['data-userid']json_url = "http://mm.taobao.com/self/info/model_info_show.htm?user_id=%d" % int(model_id)response_json = requests.get(json_url)response_json.encoding = 'gb2312'text_response_json = response_json.textsoup_json = BeautifulSoup(text_response_json, 'lxml')print "***********************************" + model.find('a', {'class': 'lady-name'}).string + "*********************************"print "模特的名字:" + model.find('a', {'class': 'lady-name'}).stringprint "模特的年龄:"+ model.find('p', {'class': 'top'}).em.strong.stringprint "生日:" + soup_json.find('li', {'class': 'mm-p-cell-left'}).span.stringblood =  soup_json.find_all('li', {'class': 'mm-p-cell-right'})[1].span.stringif blood is None:blood = "无"print "血型:" + bloodprint "学校/专业:" + soup_json.find_all('li')[5].span.stringprint "身高:" + soup_json.find('li', {'class': 'mm-p-small-cell mm-p-height'}).p.stringprint "体重:" + soup_json.find('li', {'class': 'mm-p-small-cell mm-p-weight'}).p.stringprint "三围:" + soup_json.find('li', {'class': 'mm-p-small-cell mm-p-size'}).p.stringprint "罩杯:" + soup_json.find('li', {'class': 'mm-p-small-cell mm-p-bar'}).p.stringprint "鞋码:" + soup_json.find('li', {'class': 'mm-p-small-cell mm-p-shose'}).p.stringprint "模特所在地:"+ model.find('p', {'class': 'top'}).span.stringprint "模特的id:"+ model.find('span', {'class': 'friend-follow J_FriendFollow'})['data-userid']print "模特的标签:"+ model.find_all('p')[1].em.stringprint "模特的粉丝数:"+ model.find_all('p')[1].strong.stringprint "模特的排名:"+ [text for text in model.find('div', {'class': 'popularity'}).dl.dt.stripped_strings][0]print model.find('ul', {'class': 'info-detail'}).get_text(" ",strip=True)print "模特的个人资料页面:" +"http:"+ model.find('a', {'class': 'lady-name'})['href']                              print "模特的个人作品页面:" +"http:"+ model.find('a', {'class': 'lady-avatar'})['href']print "模特的个人头像:" + "http:" + model.find('img')['src']print "***********************************" + model.find('a', {'class': 'lady-name'}).string + "*********************************"print "\n"except:print "error"except:print num + "page is error"

四、数据有差不多三万条 所以我截取部分信息:

总结:写的这篇博客整个程序的开发的思路的整个梳理。用到requests和beautiful这俩库。

希望对想做爬虫开发的人有点帮助。在我看来 思路很重要!

转载于:https://blog.51cto.com/9399369/1953581

python 爬取淘宝模特信息相关推荐

  1. Python爬取淘宝商品信息保存到Excel

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取 python免费学习资 ...

  2. 使用python爬取淘宝商品信息

    使用python爬虫爬取淘宝商品信息 使用的模块主要有 selenium ,time , re, from selenium import webdriver import time import c ...

  3. python爬取淘宝商品信息_python爬取淘宝商品信息并加入购物车

    先说一下最终要达到的效果:谷歌浏览器登陆淘宝后,运行python项目,将任意任意淘宝商品的链接传入,并手动选择商品属性,输出其价格与剩余库存,然后选择购买数,自动加入购物车. 在开始爬取淘宝链接之前, ...

  4. python爬取淘宝商品信息并加入购物车

    先说一下最终要达到的效果:谷歌浏览器登陆淘宝后,运行python项目,将任意任意淘宝商品的链接传入,并手动选择商品属性,输出其价格与剩余库存,然后选择购买数,自动加入购物车. 在开始爬取淘宝链接之前, ...

  5. Python 爬取淘宝商品信息栏目

    一.相关知识点 1.1.Selenium Selenium是一个强大的开源Web功能测试工具系列,可进行读入测试套件.执行测试和记录测试结果,模拟真实用户操作,包括浏览页面.点击链接.输入文字.提交表 ...

  6. python 提取网页正文_一篇文章教会你用Python爬取淘宝海量信息,把淘宝商品整理成一个表格...

    最近看了爬虫又新做了个小作品,来瞅瞅吧~~~ 正文开始 因为最近想买ipad,所以想要尝试一下吧 淘宝 上所有ipad商品做一个统计,把所有ipad商品的信息集合到一个excel里,那么使用爬虫这个程 ...

  7. python爬取淘宝手机信息并下载到excel文件中

    #coding=GBK import requests import re from xlwt import Workbook import xlrd import time def key_name ...

  8. 爬取淘宝模特信息并自动保存图片

    环境:Ubuntu 16.04 工具:python 3.5+,scrapy1.1,pycharm import scrapy, re, os, lxml, urllib.request from sc ...

  9. Python爬取淘宝女模特信息

    前言 Python爬取淘宝美女信息下载本地并同时存储mysql数据库,存储数据库用到了pymysql模块,sql语句简单好用,直接上代码,源码请点链接Python-Spiders文集. 项目结构: 本 ...

最新文章

  1. LeetCode 93. Restore IP Addresses--面试算法题--Python解法
  2. argparse subparsers()
  3. 【C++】语法小知识
  4. cglib动态代理和JDK动态代理
  5. Nginx配置同时适配电脑和移动端设备
  6. 第四十三节,文件、文件夹、压缩包、处理模块shutil
  7. 一个离开某门户网站人员自爆黑幕
  8. 大数据摄取:Flume,Kafka和NiFi
  9. linux挂载fc存储有超级坏块_Nand Flash基础知识与坏块管理机制的研究
  10. 最新基于adt-bundle-windows-x86的android开发环境搭建
  11. mybatis的mysql分页_使用MyBatis+Mysql实现分页的插件PageInfo使用介绍
  12. mysql基础之查询缓存、存储引擎
  13. 苹果系统安装python环境_Mac下安装Python虚拟环境Virtualenv
  14. gis投影中未定义的地理转换_PhotoScan中经纬度转换为投影坐标快捷方法
  15. 《数字电子技术基础》3.3 CMOS门电路(上)
  16. 移动页面常用media尺寸
  17. Win32/Conficker 蠕虫的病毒警报
  18. 抖音新手常犯的几个雷区,你知道几个?
  19. springBoot启动失败Caused by: java.lang.ClassNotFoundException: org.springframework.http.MediaType
  20. 如何借助SVG+CSS用2个小时撸完一个网易云音乐的动效海报(可控制速度)

热门文章

  1. 什么是事件驱动(EDA)
  2. 经典软件工程师面试题
  3. 一起来分解一个Netty应用
  4. 未明学院:双非学生风雨求职路 | 海投过上百封简历,面过券商、咨询、私募等6个方向后我得出的经验与教训
  5. FPGA入门系列17--task
  6. SSM中监听器调用service层空指针异常
  7. Rundll32解密
  8. 文献阅读笔记:Word Translation Without Parallel Data
  9. android微信怎么建群,微信可以建群吗 图文教你微信怎么建群
  10. font-awesome图标显示问题解决方案