python3爬取淘宝信息代码分析
作者:追心 发布时间:2021-05-03 04:59:11
标签:python3,爬取淘宝信息
# encoding:utf-8
import re # 使用正则 匹配想要的数据
import requests # 使用requests得到网页源码
这个函数是用来得到源码
# 得到主函数传入的链接
def getHtmlText(url):
try: # 异常处理
# 得到你传入的URL链接 设置超时时间3秒
r = requests.get(url, timeout=3)
# 判断它的http状态码
r.raise_for_status()
# 设置它的编码 encoding是设置它的头部编码 apparent_encoding是从返回网页中分析它的编码格式
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)
# 找到书包的地址
add = re.findall(r'\"item_loc\"\:\".*?\"', html)
# 找到书包的图片链接
img = re.findall(r'\"pic_url\"\:\".*?\"', html)
# 得到这个内容放入主函数中的列表
for i in range(len(plt)):
price = eval(plt[i].split(':')[1])
title = eval(tlt[i].split(':')[1])
address = eval(add[i].split(':')[1])
imgs = eval(img[i].split(':')[1])
ilt.append([price, title, address, imgs])
except: # 放生异常输出空字符串
print('')
# 得到主函数传入的列表
def printGoodsList(ilt):
# 每个列之间用tplt的放是隔开
tplt = '{:4}\t{:8}\t{:16}\t{:32}'
# 这个是整个的标题
print(tplt.format('序号', '价格', '商品名称','地址', '图片地址'))
count = 0 # 统计有多少的序号
for g in ilt:
count = count + 1 # 循环一遍加一
print(tplt.format(count, g[0], g[1], g[2]), g[3]) # 输出你得到的数据
# 定义主函数 main
def main():
goods = '书包' # 你要搜索的东西
depth = 2 # 你想要得到几页的东西
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) # 得到url传入到你要得到url的函数中
parsePage(infoList, html) # 得到你的html源码 放入解析的网页中
except: # 发生异常跳过
continue
# 把列表中的数据放入解析的函数中
printGoodsList(infoList)
# 代码调试片段
if __name__ == '__main__':
main() # 调用主函数
来源:http://blog.csdn.net/qq_39248703/article/details/73921038
0
投稿
猜你喜欢
- 当你提交一个查询的时候,MySQL会分析它,看是否可以做一些优化使处理该查询的速度更快。这一部分将介绍查询优化器是如何工作的。如果你想知道M
- Windows中升级MySQL应采取的步骤:1. 进行升级前你应先备份当前的MySQL安装。2. 下载最新Windows版MySQL。3.
- 导读:由于banner一般用于专题类网站,在门户网站的二级页面,用户进来之前,在首页已经对主题有一定的了解和认识,所以banner的作用是在
- Function Moneynm(n,m) &
- 语音识别工作原理简介语音识别源于 20 世纪 50 年代早期在贝尔实验室所做的研究。早期语音识别系统仅能识别单个讲话者以及只有约十几个单词的
- 基于的phantomjs的自动化,会出现1.flash不支持2.部分基于view的按钮点不到,部分按钮是基于flash的(尤其是在于上传按钮
- 1.在zend-studio中的项目explorer中右键-》import->选择svn->project from svn-》
- 本文实例讲述了Python + Requests + Unittest接口自动化测试。分享给大家供大家参考,具体如下:1. 介绍下pytho
- quiver绘制表示梯度变化非常有用,下面是学习过程中给出的两个例子,可以很好理解quiver的用法from pylab import *c
- 一、this1.什么是thisthis 关键字在大部分语言中都是一个重要的存在,JS中自然不例外,其表达的意义丰富多样甚至有些复杂,深刻理解
- IE在处理透明度上真够恶心,而且在IE7必须让元素的hasLayout为ture,要不会失效。以下是我最新处理透明度的代码:var 
- UDP 套接字是可以使用 connect 系统调用连接到指定的地址的。从此以后,这个套接字只会接收来自这个地址的数据,而且可以使用 send
- Python爬虫、数据分析、网站开发等案例教程视频免费在线观看https://space.bilibili.com/523606542Sel
- 本文实例讲述了微信小程序实现图片上传、删除和预览功能的方法。分享给大家供大家参考,具体如下:这里主要介绍一下微信小程序的图片上传图片删除和图
- 相信很多与页面打过交道的同学都对 Yahoo 的 Best Practices for Speeding Up Your Web Site
- table通过使用下面语句创建:create table userinfo(name text, email text)更快地插入数据在此用
- 大部分时候我们讲导航,讲的是导航对内容和结构的一种表现。就是说我们在讨论导航的时候,更多的去关注怎么与之交互,以及视觉上是怎么好看。但是导航
- 1.goroutine-看一个需求需求:要求统计1-900000000的数字中,那些是素数?分析:传统方法,就是使用一个循环,循环的判断各个
- 问题:由于自己做项目的时候,需要循环的绘制数据,假设有100个样本,每个样本包含两个坐标点(A, B),我需要对这两个点标上不同的颜色,同时
- 首先我们知道这个效果应该是一个老话题了。今天整理文件的时候,发现自己以前的一些布局的解决方法躺在文件夹里很长时间了,翻翻老底吧。需要说明的是