python实现对淘宝指定商品的价格,名称进行爬取

本文介绍了一个使用Python编写的简单爬虫程序,该程序能够从淘宝网站上抓取指定商品的信息,包括商品名称和价格,并将这些信息进行整理和展示。通过解析网页源代码并利用正则表达式提取关键数据,最后使用PrettyTable库以表格形式输出所有商品的价格排名。
部署运行你感兴趣的模型镜像
#!/usr/bin/env python
# -*- coding:utf-8 -*- 
#Author: feng
import requests
import re
from prettytable import PrettyTable
from colorama import Fore,init,Back


def getHtmlText(url):
try:
r=requests.get(url)
r.raise_for_status()
r.encoding=r.apparent_encoding
return r.text
except:
print("Wrong!!")
return ""


def getProductPrice(itl,html):
name_regx=re.compile(r'"raw_title":"(.+?)"')
bag_name=re.findall(name_regx,html)
price_regx=re.compile(r'"view_price":"(\d+?.00)"')
price_name=re.findall(price_regx,html)
for i in range(len(bag_name)):
itl.append([bag_name[i],float(price_name[i])])
return itl


def PrintAllPrice(plist):
header=("序号 价格 商品").split()
pt=PrettyTable()
pt._set_field_names(header)
plist=sorted(plist,key=lambda x:x[1])
for index,i in enumerate(plist):
pt.add_row([Fore.RED+str(index)+Fore.RESET,Fore.LIGHTCYAN_EX+str(i[1])+Fore.RESET,Back.GREEN+i[0]+Back.RESET])
print(pt)


def main():
good="iphone"#商品的全拼
depth=2#爬取的深度
start_url="https://s.taobao.com/search?q="+good
infoList=[]
for i in range(depth):
try:
url=start_url+"&s={}".format(44*i)
Text=getHtmlText(url)
getProductPrice(infoList,Text)
except:
continue
PrintAllPrice(infoList)


if __name__=="__main__":
main()

您可能感兴趣的与本文相关的镜像

lora-scripts 模型训练工具

lora-scripts 模型训练工具

AI应用
模型微调
PyTorch
TensorRT

lora-scripts 是一款开箱即用的 LoRA 训练自动化工具,封装了数据预处理、模型加载、训练调参、权重导出等全流程,无需手动编写复杂训练代码,支持 Stable Diffusion(图文生成)、LLM(大语言模型)等主流模型的 LoRA 微调,适配新手和进阶用户。

### 使用Python爬虫程序抓取淘宝商品标题 #### 准备工作 为了成功抓取淘宝商品标题,需先安装一些必要的库。这些库包括`requests`用于发送HTTP请求,`lxml`或`BeautifulSoup`解析HTML文档,还有可能需要`selenium`来处理JavaScript渲染的页面[^4]。 ```bash pip install requests lxml beautifulsoup4 selenium ``` #### 分析目标网页 淘宝商品列表页URL结构较为固定,可以通过修改搜索关键词参数`q`来改变查询条件。例如要查找名为“手机”的商品,则可以构建如下形式的基础URL: https://s.taobao.com/search?q=手机 此链接指向了包含大量商品条目的页面,在浏览器开发者工具的帮助下进一步观察网络流量,了解服务器返回的数据格式及其变化规律[^3]。 #### 编基础版本的爬虫脚本 下面是一个简单版的Python代码片段,它能够提取指定类别下的部分商品名作为示例展示: ```python import requests from bs4 import BeautifulSoup def fetch_product_titles(keyword, page=1): url = f"https://s.taobao.com/search?q={keyword}&s={(page-1)*44}" headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)', # 可能还需要其他headers字段模拟真实访问行为 } response = requests.get(url=url, headers=headers) soup = BeautifulSoup(response.text, 'html.parser') items = [] for item in soup.select('.items .item'): title_element = item.find('h3', class_='title').find('a') if not title_element: continue product_title = title_element.get_text(strip=True) items.append(product_title) return items[:min(len(items), 10)] # 返回最多十条记录以便测试 if __name__ == "__main__": titles = fetch_product_titles("手机") print("\n".join(titles)) ``` 这段代码定义了一个函数`fetch_product_titles()`接收两个参数:一个是搜索关键字;另一个是分页数,默认为第一页。该函数会构造相应的GET请求并解析响应体内的HTML内容,最终筛选出符合条件的产品标题集合[^1]。 请注意实际操作过程中还需考虑更多细节问题,比如异常情况处理、IP封禁规避措施等[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值