字符串抓取以/开头,以.v结束

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

"D:\Program Files\Python312\python.exe" C:\Users\lenovo\PycharmProjects\PythonProject\1111\淘宝.py 第1页抓取失败: 'latin-1' codec can't encode characters in position 9-10: ordinal not in range(256) 第2页抓取失败: 'latin-1' codec can't encode characters in position 9-10: ordinal not in range(256) === 总共获取到商品信息如下 === 进程已结束,退出代码为 0 import time import json import hashlib import requests # 淘宝 appKey 固定值 APPKEY = "12574478" # 替换为你自己的 Cookie,必须包含 _m_h5_tk 和 _m_h5_tk_enc COOKIE = "_m_h5_tk=你的token_时间戳; _m_h5_tk_enc=你的enc; cookie2=xxxx; t=xxxx; cna=xxxx; ..." # 从 _m_h5_tk 中提取 token TOKEN = COOKIE.split("_m_h5_tk=")[1].split("_")[0] # 请求头 HEADERS = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123 Safari/537.36", "Referer": "https://main.m.taobao.com/", "Cookie": COOKIE } def get_sign(t, data_str): raw = f"{TOKEN}&{t}&{APPKEY}&{data_str}" return hashlib.md5(raw.encode()).hexdigest() def get_data(page): # 构造 data 参数 data = { "q": "手机", "search": "提交", "tab": "all", "n": 20, "sort": "default", "page": page, "bcoffset": 0, "js": "1", "s": str((page - 1) * 20) } data_str = json.dumps(data, separators=(',', ':')) # 当前时间戳(毫秒) t = str(int(time.time() * 1000)) sign = get_sign(t, data_str) # 构造 URL url = "https://h5api.m.taobao.com/h5/mtop.taobao.wsearch.appsearch/1.0/?" params = { "jsv": "2.7.2", "appKey": APPKEY, "t": t, "sign": sign, "api": "mtop.taobao.wsearch.appsearch", "v": "1.0", "type": "jsonp", "timeout": "20000", "dataType": "jsonp", "callback": "mtopjsonp1", "data": data_str } # 发起请求 resp = requests.get(url, headers=HEADERS, params=params) text = resp.text # 解析 JSONP json_str = text[text.find('(') + 1: text.rfind(')')] json_obj = json.loads(json_str) # 提取核心商品数据 items = json_obj['data']['listItem'] result = [] for item in items: name = item.get("title", "") price = item.get("priceShow", {}).get("price", "") sales = item.get("realSales", "") result.append({ "name": name, "price": price, "sales": sales }) return result if __name__ == "__main__": all_data = [] for page in range(1, 3): # 抓取第1页和第2页 try: data = get_data(page) all_data.extend(data) print(f"第{page}页获取成功,共 {len(data)} 条") time.sleep(1) # 避免请求太快被限 except Exception as e: print(f"第{page}页抓取失败: {e}") # 输出所有结果 print("\n=== 总共获取到商品信息如下 ===") for item in all_data: print(item) 帮我看下为什么
07-18
<!DOCTYPE html> <head> 解析这段代码 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <meta http-equiv="content-language" content="zh-CN" /> <meta name="viewport" content="width=device-width,initial-scale=1.0,user-scalable=no" /> <meta name="apple-mobile-web-app-capable" content="yes" /> <meta name="apple-mobile-web-app-status-bar-style" content="black" /> <title>上海瀚图汽车配件有限公司</title> <meta name="keywords" content="上海瀚图汽车配件有限公司" /> <meta name="description" content="上海瀚图汽车配件有限公司是一家集科研、生产、销售于一体的实体公司。经过多年的发展已成为汽配行业中的佼佼者,公司所生产的优质产品直接或间接配套国内汽车主机厂" /> <link rel="stylesheet" href="css/page.css" type="text/css" media="screen" charset="utf-8"> <link rel="stylesheet" href="css/reset.css" type="text/css" media="screen" charset="utf-8"> <script src="js/jQuery.js" type="text/javascript" charset="utf-8"></script> <script src="js/jquery.easing.1.3.js" type="text/javascript" charset="utf-8"></script> <script src="js/jquery.transit.js" type="text/javascript" charset="utf-8"></script> <script src="js/prefixfree.min.js" type="text/javascript" charset="utf-8"></script> <script src="js/html5.min.js" type="text/javascript" charset="utf-8"></script> <script src="js/bocfe.js?v=v2" type="text/javascript" charset="utf-8"></script> <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8"> <style> html, body { position: relative; } </style> </head> <!-- <body ondragstart="return false" oncontextmenu="return false"> --> <body> <div class="fwtop"> <header> <div class="fwtop_head"> <div class="fwtop_logo"> <div class="top_logo"> <div class="fr" style="float:right; margin-top:0px;"><table width="109" border="0" align="right" cellpadding="0" cellspacing="0"> <tr> <td width="47%"> </td> <td width="23%" align="center" class="f12"><a href=" ">中文版</a ></td> <td width="2%" align="center">< img src="images/topline.png" width="3" height="10"></td> <td width="28%" align="center" class="f12"><a href="en/index.asp">ENGLISH</a ></td> </tr> <tr> <td colspan="4">< img src="images/tel.png" width="258" height="31"></td> </tr> </table> </div><a href="/">< img src="images/logo.png" height="47" title="test"/></a > </div> </div> <div class="clear"></div> </div> <div class="fwtop_mainNav" style="width:1005"> <div class="siteMainNav fwtop_nav fwnavlink" id="siteMainNav" > <ul> <li class="open"><a href="index.asp"><font color="#FFFFFF">首页</font></a ></li> <li><a href="aboutus.asp"><font color="#FFFFFF">关于我们</font></a ></li> <li><a href="news.asp"><font color="#FFFFFF">新闻中心</font></a ></li> <li><a href="products.asp"><font color="#FFFFFF">产品展示</font></a ></li> <li><a href="rc.asp"><font color="#FFFFFF">招贤纳士</font></a ></li> <li><a href="lyb.asp"><font color="#FFFFFF">客户留言</font></a ></li> <li><a href="contactus.asp"><font color="#FFFFFF">联系我们</font></a ></li> </ul> <div class="clear"></div> </div> </div> <div class="clear"></div> </header> <script src="js/bocfe.js" type="text/javascript" charset="utf-8"></script><script> // Tab($(".subnav-car .tab a"),$(".subnav-car .list .box")) // Tab($(".subnav-car .sanji a"),$(".sanji-info .sanji-info-box")) $(".subnav-car .tab a").eq(0).addClass("cur") $(".subnav-car .list .box").eq(0).show(); $(".subnav-car .list .box").eq(0).find(".sanji a").eq(0).addClass("cur") $(".subnav-car .list .box").eq(0).find(".sanji-info-box").eq(0).show() $(".subnav-car .list .box").eq(0).find(".sanji a").hover(function(){ $(this).addClass("cur").siblings().removeClass("cur") var x = $(this).index(); $(this).parents(".box").find(".sanji-info-box").eq(x).show().siblings().hide(); }) $(".subnav-car .tab a").hover(function(){ var n = $(this).index(); var _this = $(".subnav-car .list .box").eq(n); $(this).addClass("cur").siblings().removeClass("cur") _this.show().siblings().hide() _this.find(".sanji-info-box").eq(0).show() _this.siblings().find(".sanji-info-box").hide(); _this.find(".sanji a").eq(0).addClass("cur") _this.siblings().find(".sanji a").removeClass("cur") _this.find(".sanji a").hover(function(){ var i = $(this).index(); $(this).addClass("cur").siblings().removeClass("cur") _this.find(".sanji-info-box").eq(i).show().siblings().hide(); }) }) </script> <div class="iban por ovh z1 load-bg"> <ul> <li class="poa-f dn"> <a href="">< img src="images/b1.jpg?v=v2 " alt="" ></a > </li> </ul> <!--<div class="btn poa"></div>--> </div> </div> <div class="i-news por z2"> <div class="list w por"> <div class="list-in por ovh"> <ul> <li class="h"> <div class="img por ovh"> <a href="prov.asp?nid=589">< img src="/upfiles/image/20210907/20210907155138823882.jpg" width="240" height="180" alt="" class="t-f"></a > </div> </li> <li class="h"> <div class="img por ovh"> <a href="prov.asp?nid=587">< img src="/upfiles/image/20210907/20210907152570167016.jpg" width="240" height="180" alt="" class="t-f"></a > </div> </li> <li class="h"> <div class="img por ovh"> <a href="prov.asp?nid=586">< img src="/upfiles/image/20210907/2021090715020240240.jpg" width="240" height="180" alt="" class="t-f"></a > </div> </li> <li class="h"> <div class="img por ovh"> <a href="prov.asp?nid=585">< img src="/upfiles/image/20210907/20210907145923302330.jpg" width="240" height="180" alt="" class="t-f"></a > </div> </li> <li class="h"> <div class="img por ovh"> <a href="prov.asp?nid=584">< img src="/upfiles/image/20210907/20210907145715331533.jpg" width="240" height="180" alt="" class="t-f"></a > </div> </li> <li class="h"> <div class="img por ovh"> <a href="prov.asp?nid=564">< img src="/upfiles/image/20200918/20200918105150285028.jpg" width="240" height="180" alt="" class="t-f"></a > </div> </li> <li class="h"> <div class="img por ovh"> <a href="prov.asp?nid=563">< img src="/upfiles/image/20200918/20200918105017901790.jpg" width="240" height="180" alt="" class="t-f"></a > </div> </li> <li class="h"> <div class="img por ovh"> <a href="prov.asp?nid=562">< img src="/upfiles/image/20200918/20200918105027962796.jpg" width="240" height="180" alt="" class="t-f"></a > </div> </li> <li class="h"> <div class="img por ovh"> <a href="prov.asp?nid=561">< img src="/upfiles/image/20200918/2020091810490965965.jpg" width="240" height="180" alt="" class="t-f"></a > </div> </li> <li class="h"> <div class="img por ovh"> <a href="prov.asp?nid=560">< img src="/upfiles/image/20200918/20200918103979747974.jpg" width="240" height="180" alt="" class="t-f"></a > </div> </li> <li class="h"> <div class="img por ovh"> <a href="prov.asp?nid=559">< img src="/upfiles/image/20200918/20200918103853805380.jpg" width="240" height="180" alt="" class="t-f"></a > </div> </li> <li class="h"> <div class="img por ovh"> <a href="prov.asp?nid=558">< img src="/upfiles/image/20200918/20200918103740134013.jpg" width="240" height="180" alt="" class="t-f"></a > </div> </li> <li class="h"> <div class="img por ovh"> <a href="prov.asp?nid=552">< img src="/upfiles/image/20200918/20200918102939733973.jpg" width="240" height="180" alt="" class="t-f"></a > </div> </li> <li class="h"> <div class="img por ovh"> <a href="prov.asp?nid=540">< img src="/upfiles/image/20200918/20200918092599599959.jpg" width="240" height="180" alt="" class="t-f"></a > </div> </li> <li class="h"> <div class="img por ovh"> <a href="prov.asp?nid=539">< img src="/upfiles/image/20200918/20200918092426602660.jpg" width="240" height="180" alt="" class="t-f"></a > </div> </li> <li class="h"> <div class="img por ovh"> <a href="prov.asp?nid=535">< img src="/upfiles/image/20200918/20200918092150385038.jpg" width="240" height="180" alt="" class="t-f"></a > </div> </li> <li class="h"> <div class="img por ovh"> <a href="prov.asp?nid=534">< img src="/upfiles/image/20200918/20200918092029862986.jpg" width="240" height="180" alt="" class="t-f"></a > </div> </li> <li class="h"> <div class="img por ovh"> <a href="prov.asp?nid=529">< img src="/upfiles/image/20200918/20200918085573077307.jpg" width="240" height="180" alt="" class="t-f"></a > </div> </li> <li class="h"> <div class="img por ovh"> <a href="prov.asp?nid=528">< img src="/upfiles/image/20200918/20200918085460236023.jpg" width="240" height="180" alt="" class="t-f"></a > </div> </li> <li class="h"> <div class="img por ovh"> <a href="prov.asp?nid=527">< img src="/upfiles/image/20200918/20200918085282498249.jpg" width="240" height="180" alt="" class="t-f"></a > </div> </li> <li class="h"> <div class="img por ovh"> <a href="prov.asp?nid=526">< img src="/upfiles/image/20200918/20200918085298089808.jpg" width="240" height="180" alt="" class="t-f"></a > </div> </li> </ul> </div> <div class="btn poa prev"> <div class="in h t-bg"></div> </div> <div class="btn poa next"> <div class="in h t-bg"></div> </div> </div> </div> <footer> <div class="footer-bottom"> <div class="w f-cb"> Copyright © 2017 上海瀚图汽车配件有限公司</p > <div class="clear"></div> </div> </div> </footer> <div style="float:center; font-size:12px; margin-top:8px; margin-bottom:8px; text-align:center; margin-right:13px; display:none"></div> <div class="video-out poa-f z3 dn"> <div class="bg poa-f"></div> <div class="main poa"> <div class="close poa"></div> <div class="video-in"> </div> </div> </div> <script src="js/main.js" type="text/javascript" charset="utf-8"></script> <link rel="stylesheet" href="CSS/skitter.styles.css" type="text/css" media="screen" charset="utf-8"> <script src="js/jquery.skitter.js" type="text/javascript" charset="utf-8"></script> <script src="js/scroll.js" type="text/javascript" charset="utf-8"></script><script> $(function(){ var banImg = new Array(); for (var i = 0; i < $(".iban li").length; i++) { banImg[i] = $(".iban li").find("img").attr("src") }; _PreLoadImg([ banImg ],function(){ $(".iban").removeClass("load-bg").find("li").eq(0).stop().fadeIn(800, "easeInOutCubic") for (var i = 0; i < $(".iban li").length; i++) { $(".iban .btn").append('<span class="span'+i+' fl t-bg"></span>'); }; $(".iban .btn").css("margin-left", -$(".btn").width()/2 ); $(".iban .btn span").eq(0).addClass("cur"); function myShow(i){ $(".iban .btn span").eq(i).addClass("cur").siblings("span").removeClass("cur"); $(".iban > ul > li").eq(i).stop(true,true).fadeIn(1000).siblings().stop(true,true).fadeOut(1000); } var sw = 1; $(".iban .btn span").click(function(){ sw = $(".iban .btn span").index(this); myShow(sw); }); //滑入停止动画,滑出开始动画 $(".iban").hover(function(){ if(myTime){ clearInterval(myTime); } },function(){ clearInterval(myTime); myTime = setInterval(function(){ myShow(sw); sw++; if(sw==$(".iban li").length){sw=0;} } , 5000); }); //自动开始 var myTime = setInterval(function(){ myShow(sw); sw++; if(sw==$(".iban li").length){sw=0;} } , 5000); $(".iban li a.video").click(function(e){ e.preventDefault(); $('.video-out .video-in').html(html); $(".video-out").stop().fadeIn(600).find(".main").css("top", $(window).scrollTop() + ($(window).height() - 468) / 2 ) }) $(".video-out .close").click(function(){ $(".video-out").stop().fadeOut(600) }) }) $(".i-news .list").hover(function(){ $(this).find(".prev").stop().animate({ left : - 58, opacity : 1 }, 400) $(this).find(".next").stop().animate({ right : - 58, opacity : 1 }, 400) }, function(){ $(this).find(".prev").stop().animate({ left : 0, opacity : 0 }, 400) $(this).find(".next").stop().animate({ right : 0, opacity : 0 }, 400) }) Scroll($(".i-news .list-in"), $(".i-news .list .prev"), $(".i-news .list .next"), 254, 1) $(".i-news .sign-btn").click(function(){ if($(this).hasClass("cur")){ $(this).removeClass("cur").html($(this).data("up")) $(".i-news .list").stop().animate({ height : 175, padding : "36px 0 41px" }, 600, "linear").removeClass("ovh") $(".i-news .list-in").stop().animate({height : 252}, 600, "linear") }else{ $(this).addClass("cur").html($(this).data("down")) $(".i-news .list").stop().animate({ height : 0, padding : 0 }, 600, "linear").addClass("ovh") $(".i-news .list-in").stop().animate({height : 0}, 600, "linear") } }) }) </script> </body> </html>
10-13
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值