洞察如何提升企业数字化转型的灵活性,支持跨终端的小程序开发策略
1128
2022-11-20
Python,自己修改的爬取淘宝网页的代码 修改Python爬虫,爬取淘宝商品信息也不报错,也不输出信息的错误
代码部分:下面是正确的:
import requestsimport redef 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) fee = re.findall(r'\"view_fee\"\:\"[\d\.]*\"',html) xiao = re.findall(r'\"view_sales\"\:\".*?\"',html) tlt = re.findall(r'\"raw_title\"\:\".*?\"',html) shop = re.findall(r'\"nick\"\:\".*?\"',html) for i in range(len(plt)): price = eval(plt[i].split(':')[1]) feeprice = eval(fee[i].split(':')[1]) xiaoliang = eval(xiao[i].split(':')[1]) title = eval(tlt[i].split(':')[1]) shopname = eval(shop[i].split(':')[1]) ilt.append([price,feeprice,xiaoliang,title,shopname])#,sal except: print("")def printGoodsList(ilt): tplt = "{:4}\t{:8}\t{:8}\t{:8}\t{:16}\t{:8}" print(tplt.format("序号","价格","邮费","销量","商品名称 ","店铺名称")) count = 0 for g in ilt: count = count + 1 print(tplt.format(count,g[0],g[1],g[2],g[3],g[4])) def main(): goods = '书包' depth = 1 start_url = '+ 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()
这个爬取的正则表达式:
其中在爬取销量那个标签的时候,没有报错。
但是也不会出现自己想要的东西。其他的爬取成功的信息也不会显示出来。
后来,我看了看网页源代码:
其中有个“人付款”,这个是中文的呀。
明显用数字的正则表达式来爬取是不可以爬取到,也许是因为超时了?
反正就是什么都输出不来。
成功示例图:
失败示例图:
代码,真有意思!
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~