Heim  >  Artikel  >  Backend-Entwicklung  >  So crawlen Sie Taobao-Produktdaten in Python

So crawlen Sie Taobao-Produktdaten in Python

尚
Original
2019-06-28 16:58:036093Durchsuche

So crawlen Sie Taobao-Produktdaten in Python

Der Hauptzweck dieses Mal besteht darin, Produktinformationen von der Suchseite von Taobao abzurufen. Tatsächlich ist es einfach, Informationen durch die Analyse der Seite zu finden. Die Seiteninformationen werden statisch direkt auf der verschachtelten Seite gespeichert, sodass sie leicht zu finden sind. Die Hauptschwierigkeit besteht darin, die Informationen vom HTML-Quellcode zu trennen. Die Daten und der Quellcode der Webseite sind eng miteinander verbunden, sodass es schwierig ist, die Daten zu trennen.

Schreiben Sie dann die erhaltenen Informationen in eine Excel-Tabelle und speichern Sie sie. Diesmal wurde nur der Inhalt der ersten 10 Seiten gecrawlt.

Der Code lautet wie folgt:

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()

Weitere technische Artikel zum Thema Python finden Sie in der Spalte Python-Tutorial, um mehr darüber zu erfahren!

Das obige ist der detaillierte Inhalt vonSo crawlen Sie Taobao-Produktdaten in Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn