Heim > Artikel > Backend-Entwicklung > 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!