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


猜你喜欢
- json文件格式这是yolov4模型跑出来的检测结果result.json下面是截取的一张图的检测结果{ "frame_id&qu
- python新手一枚,操作系统Win10 64 bit,Python版本,3.7因为某个脚本需要用到win32con 和win32api模块
- 1. 过程概述Python先把代码(.py文件)编译成字节码,交给字节码虚拟机,然后虚拟机一条一条执行字节码指令,从而完成程序的执行。2.
- 转发和重定向:转发:一次请求和响应,请求的地址没有发生变化,如果此时刷新页面,就会出现重做现象。重定向:一次以上的请求和响应,请求地址发生一
- 序列解包(Sequence Unpacking)是Python中非常重要和常用的一个功能,可以使用非常简洁的形式完成复杂的功能,大幅度提高了
- 需求:连接本机的(两台安卓手机)或者本机安装的(安卓模拟器两个),实现同时安装本地apk包 。demon.py特别说明:必须写udid才能实
- 微信更新后出来了一块比较火的小游戏,要是一款不涉及到排行的游戏,可能 没人去关注这款游戏。最开自己一直苦练技术,想在微信排行上面装一装,练了
- 一 引入我们学习变量是为了让计算机能够像人一样去记忆事物的某种状态,而变量的值就是用来存储事物状态的,很明显事物的状态分成不同种类的(比如人
- 操作步骤进入命令行环境。我使用的是conda。有两种方式进入命令行。方法1:通过anconda navigator界面,选择environm
- 不知道在坛子里有多少朋友使用触发器,如果你已经对触发器很了解了,那么请跳过此文,如果你还没有使用过触发器的话,那就让我们来认识一下吧。相关阅
- Python 3.8是Python语言的最新版本,它适合用于编写脚本、自动化以及机器学习和Web开发等各种任务。现在Python 3.8已经
- 挖坟 交互设计(Interaction Design)产生于二十世纪八十年代,在1984年一次设计会议上,大名鼎鼎的英国交互设计师比尔·莫格
- 前言本文讲诉了Vuex的安装、搭建。以及Actions、Mutations、State、Getters的使用,为什么使用mapState、m
- 在页面中自定义了changejs函数后页面提示错误:Active Server Pages 错误 'ASP 0138' 嵌套
- 目录1.程序结构2.选择语句2.1最简单的if语句2.2.if …… else 语句2.3.if…elif…else语句2.4 if 语句的
- 随着CSS3越来越热,CSS3动画也逐渐受到大家的关注。这次有幸修改淘宝网全站页头,小小地应用了下(详见http://www.taobao.
- 介绍Python常见的字符串处理方式字符串截取 >>>s = 'hello'>>>s[0
- 前言一、查看安装的库1.命令查询pip list2.从安装路径site-packages查看二、导出库安装文件1.导出在我们要导出的库文件夹
- Python3,开一个线程,间隔1秒把一个递增的数字写入队列,再开一个线程,从队列中取出数字并打印到终端#! /usr/bin/env py
- 背景构建和测试大型项目时都会很耗时,且容易出错。开发者在开发过程中需要不断执行go build、go run 、go test等相关命令。还