首页 » 技术分享 » Python,自己修改的爬取淘宝网页的代码 修改Python爬虫,爬取淘宝商品信息也不报错,也不输出信息的错误

Python,自己修改的爬取淘宝网页的代码 修改Python爬虫,爬取淘宝商品信息也不报错,也不输出信息的错误

 

代码部分:
下面是正确的:

import requests
import re


def 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 = 'https://s.taobao.com/search?q=' + 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()

这个爬取的正则表达式:
在这里插入图片描述
其中在爬取销量那个标签的时候,没有报错。
但是也不会出现自己想要的东西。其他的爬取成功的信息也不会显示出来。
后来,我看了看网页源代码:
在这里插入图片描述其中有个“人付款”,这个是中文的呀。
明显用数字的正则表达式来爬取是不可以爬取到,也许是因为超时了?
反正就是什么都输出不来。

成功示例图:

在这里插入图片描述
失败示例图:
在这里插入图片描述

代码,真有意思!

转载自原文链接, 如需删除请联系管理员。

原文链接:Python,自己修改的爬取淘宝网页的代码 修改Python爬虫,爬取淘宝商品信息也不报错,也不输出信息的错误,转载请注明来源!

0