Python网络爬虫爬淘宝无法爬取问题的解决方法

看了嵩天教授的【Python网络爬虫与信息提取】.MOOC. 北京理工大学   课程,里面有一段演示如何从淘宝爬取价格信息,但实际操作却不行,问题在于淘宝19年开始实行搜索必须登录,但是Python爬取该如何做呢?

  先上完整代码:

import requests
import re

def getHTMLText(url): #获得页面函数,淘宝需要登录验证,暂时访问不了
    try:
        header={
            'user-agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36',
            'cookie':'thw=cn; tracknick=***;*************************************************************************3fP.'
        }
        r=requests.get(url,headers=header,timeout=30)
        r.raise_for_status()
        r.encoding=r.apparent_encoding
        # print(r.text)
        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)
        for i in range(len(plt)):
            price=eval(plt[i].split(':')[1])
            title=eval(tlt[i].split(':')[1])
            ilt.append([price,title])
    except:
        print("")

def printGoodlist(ilt): #输出结果信息到屏幕
    tplt="{:4}\t{:8}\t{:16}"
    print(tplt.format("序号","价格","商品名称"))
    count=0
    for g in ilt:
        count=count+1
        print(tplt.format(count,g[0],g[1]))


def main(): #主函数
    goods='书包'
    depth=2 #下一页深度
    start_url='https://s.taobao.com/search?q=' + goods
    indolist=[] #输出结果
    for i in range(depth):
        try:
            url=start_url + '&s=' + str(44*i)
            html=getHTMLText(url)
            parsePage(indolist,html)
        except:
            continue
    printGoodlist(indolist)

main()

其中获取页面返回中的headers中的cookie我没有粘贴全,需要大家在登录自己淘宝号,在浏览器中选择审核元素,详细位置如下图,必须重新刷新下页面,点击network选项,刷新页面,点击网址或者下面第一项,找到headers,里面有浏览器和cookies信息,粘贴在header里就可以Python网络爬虫爬淘宝无法爬取问题的解决方法_第1张图片

最终执行结果如下:

Python网络爬虫爬淘宝无法爬取问题的解决方法_第2张图片

你可能感兴趣的:(python网络爬虫,爬淘宝价格信息,初学者)