Maison  >  Article  >  développement back-end  >  Comment explorer les données des produits Taobao en Python

Comment explorer les données des produits Taobao en Python

尚
original
2019-06-28 16:58:036024parcourir

Comment explorer les données des produits Taobao en Python

L'objectif principal cette fois est d'obtenir des informations sur les produits à partir de la page de recherche de Taobao. En fait, il est facile de trouver des informations en analysant la page. Les informations de la page sont stockées directement sur la page imbriquée de manière statique, ce qui facilite leur recherche. La principale difficulté est de séparer les informations du code source HTML. Les données et le code source de la page Web sont étroitement intégrés, il est donc difficile de séparer les données.

Écrivez ensuite les informations obtenues dans un tableau Excel et enregistrez-le. Cette fois, seul le contenu des 10 premières pages a été exploré.

Le code est le suivant :

import requests
import re
from xlwt import Workbook
import xlrd
import time
def key_name( number ):
    #获取页面的内容并返回
    name = '手机'
    URL_1 = "https://s.taobao.com/search?ie=utf8&initiative_id=staobaoz_20170905&stats_click=search_radio_all%3A1&js=1&imgfile=&q="
    URL_2 = "&suggest=0_1&_input_charset=utf-8&wq=u&suggest_query=u&source=suggest&p4ppushleft=5%2C48&s="
    URL = ( URL_1 + name + URL_2 + str(number))
    #print(URL)
    res = requests.get( URL )
    return res.text
def find_date( text):
    #根据整个页面的信息,获取商品的数据所在的HTML源码并放回
    reg = r',"data":{"spus":\[({.+?)\]}},"header":'
    reg = re.compile(reg)
    info = re.findall(reg, text)
    return info[0]
def manipulation_data( info, N, sheet ):
    #解析获取的HTML源码,获取数据
    Date = eval(info)
    for d in Date:
        T = " ".join([t['tag'] for t in d['tag_info']])
        #print(d['title'] + '\t' + d['price'] + '\t' + d['importantKey'][0:len(d['importantKey'])-1] + '\t' + T)
        
        sheet.write(N,0,d['title'])
        sheet.write(N,1,d['price'])
        sheet.write(N,2,T)
        N = N + 1
    return N
    
    
def main():
    
    book = Workbook()
    sheet = book.add_sheet('淘宝手机数据')
    sheet.write(0,0,'品牌')
    sheet.write(0,1,'价格')
    sheet.write(0,2,'配置')
    book.save('淘宝手机数据.xls')
    #k用于生成链接,每个链接的最后面的数字相差48.
    #N用于记录表格的数据行数,便于写入数据
    k = 0
    N = 1
    for i in range(10+1):
        text = key_name( k + i * 48 )
        info = find_date(text)
        N = manipulation_data( info ,N, sheet )
    
        book.save('淘宝手机数据.xls')
        print('下载第' + str(i) + '页完成')
if __name__ == '__main__':
    main()

Pour plus d'articles techniques liés à Python, veuillez visiter la colonne Tutoriel Python pour apprendre !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn