How to crawl Taobao product data in Python

Release: 2019-07-08 09:13:46
Original
6121 people have browsed it

How to crawl Taobao product data in Python

The main purpose this time is to obtain product information from Taobao’s search page. In fact, it is easy to find information by analyzing the page. The page information is stored directly on the nested page in a static manner, making it easy to find. The main difficulty is to separate the information from the HTML source code. The data and the web page source code are closely integrated, so it is difficult to separate the data.

Then write the obtained information into an excel table and save it. This time, only the content of the first 10 pages was crawled.

The code is as follows:

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()
Copy after login

For more Python-related technical articles, please visit the Python Tutorial column to learn!

The above is the detailed content of How to crawl Taobao product data in Python. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template