我们在网购的时候经常会使用一些网络平台,淘宝是一个重要的平台.
我们买东西都需要在淘宝上进行一些搜索.
功能描述
目标:获取淘宝搜索页面的信息,提取其中的商品名称和价格
理解:淘宝的搜索接口,怎么通过程序向淘宝提交请求并获得返回的结果
翻页的处理
技术路线:requests‐bs4‐re
例如,搜索“书包”
起始页:https://s.taobao.com/search?q=书包&js=1&stats_click=search_radio_all%
3A1&initiative_id=staobaoz_20170105&ie=utf8
第2页:https://s.taobao.com/search?q=书包&js=1&stats_click=search_radio_all%
3A1&initiative_id=staobaoz_20170105&ie=utf8&bcoffset=0&ntoffset=0&p4pp
ushleft=1%2C48&s=44
第3页:https://s.taobao.com/search?q=书包&js=1&stats_click=search_radio_all%
3A1&initiative_id=staobaoz_20170105&ie=utf8&bcoffset=‐3&ntoffset=‐
3&p4ppushleft=1%2C48&s=88
每页44个商品
通过对例子的分析,我们得到了搜索接口和翻页的URL对应属性
定向爬虫的可行性
https://s.taobao.com/robots.txt
User‐agent: *
Disallow: /
所以淘宝的搜索页面是不允许爬虫对它进行爬取的
请注意:这个例子仅探讨技术实现,请不要不加限制的爬取该网站
程序的结构设计
步骤1:提交商品搜索请求,循环获取页面
步骤2:对于每个页面,提取商品名称和价格信息
步骤3:将信息输出到屏幕上
实例编写
import requests
import re
def getHTMLText(url):
try:
r = requests.get(url, timeout=30)
r.raise_for_status()
r.encoding = r.apparent_encoding
return r.text
except:
return ""
def parsePage(ilt, html):
try:
plt = re.findall(r'\"view_price\"\:\"[\d\.]*\"',html)
tlt = re.findall(r'\"raw_title\"\:\".*?\"',html)
for i in range(len(plt)):
price = eval(plt[i].split(':')[1])
title = eval(tlt[i].split(':')[1])
ilt.append([price , title])
except:
print("")
def printGoodsList(ilt):
tplt = "{:4}\t{:8}\t{:16}"
print(tplt.format("序号", "价格", "商品名称"))
count = 0
for g in ilt:
count = count + 1
print(tplt.format(count, g[0], g[1]))
def main():
goods = 'Python'
depth = 3
start_url = 'https://s.taobao.com/search?q=' + goods
infoList = []
for i in range(depth):
try:
url = start_url + '&s=' + str(44*i)
html = getHTMLText(url)
parsePage(infoList, html)
except:
continue
printGoodsList(infoList)
main()
序号
价格
商品名称
1
34.60
零基础入门学习Python入门教程小甲鱼著
2
34.60
零基础入门学习Python 小甲鱼计算机/网络 程序设计 零基础学编程 python基础学习手册 pyhton从入门到精通Python程序设计教程书籍
3
69.80
现货Python编程从入门到实践python3.0绝技核心编程基础教程网络爬虫入门书籍python视频编程从入门到精通程序设计教材
4
346.00
【正版@区域包邮】数据科学与工程技术丛书 套装(共5册)高级R语言编程指南+数据科学导论:Python语言实现+数据质量测量的持续改
5
61.70
【包邮计算机】Python可以这样学//正版图书
6
57.30
Maya Python游戏与影视编程指南 音频、视频、流媒体书籍 畅销书
7
52.80
python编程入门教程 教孩子编程的图书 父与子的编程之旅 与小卡特一起学Python Python语言基础入门书 计算机程序设计核心编程
8
61.70
【包邮计算机】Python数据可视化//正版图书
9
45.90
包邮 Python网络数据采集 python语言网络数据采集教程书籍 python编程基础入门教程 网络爬虫测试网站教程 程序设计教材
10
37.50
【正版包邮Z】贝叶斯思维 统计建模的Python学习法Allen B.Downey,许杨毅计算机/网络 程序设计 其他畅销书籍人民邮电出版社博
11
85.14
【包邮计算机】Python金融大数据分析//正版图书
总结
采用requests‐re路线实现了淘宝商品比价定向爬虫
熟练掌握正则表达式在信息提取方面的应用