首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

淘宝数据爬取

使用firebug寻找手机列表在html中的定位:

图中圈中的每一个标签对应手机列表中的一部手机。打开网页的源代码中去找相同位置的内容,结果发现

在id为main的标签内,内容为空!所以我们直接download这个html的话是无法从中直接抽取想要的手机信息的。产生这种现象的原因应该是淘宝使用了ajax技术,这导致网页中的数据是使用JavaScript动态加载的,如果要抓取该数据需要使用逆向工程。

方法步骤:

手机搜索结果页面右键鼠标选择“查看元素”(firebug),选择“网络”,清空当前页面下所有数据,点击手机搜索页面的“搜索”按键,然后firebug中看到有数据获取结果:

现在可以开始编码了:

编码语言:Python3.5

开发环境:pycharm

code_version_1:

def downloader(url):

user_agent = ‘Mozilla/5.0 (Linux; Android 4.1.1; Nexus 7 Build/JRO03D) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Safari/535.19’

headers = {‘User-agent’:user_agent}

req = Request(url, headers = headers)

try:

html = urlopen(url).read().decode()

except error.URLError as e:

html = None

if hasattr(e, ‘reason’):

print(‘we failed reach to a webserver’)

print(e.reason)

if hasattr(e, ‘code’):

print(‘the server could not fullfill the request’)

print(e.code)

返回的html非常繁杂,需要点耐心分析其中的数据结构,我使用了更简洁的re。

tips:

使用python3.5 download下来的html,显示为unicoe编码格式,为方便查看使其变回汉字格式,方法:

import html

html.unescape(h.decode()) #h为download的html

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180203G0PUOM00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券