Python Reptil-Tour _TWO

Vorwort:

ONE über Reptilien und gelernt requestsgrundlegende Verwendung des Moduls, diesmal , um die Lehrer zu folgen , einen umfassenden Fall zu tun

0x00: Case Beschreibung

Nehmen Sie diese Zeit, um die Kosmetik-Unternehmen spezifische Produktionslizenzinformationen zu klettern
Hier hat Bild einfügen Beschreibung
Hier hat Bild einfügen Beschreibung

0x01: Die Analyse

Wir müssen zunächst feststellen , ob die Informationen auf dieser Seite erscheint das Unternehmen dynamisch geladen oder aus direkt zusammen mit der URL entstehen
Hier hat Bild einfügen Beschreibung
kann F12auch eine schreiben kann aussehen pySkript über die kriechende
erfassten Daten der Seite, können Sie fragen Sie den Firmennamen in der ist Daten , die Informationen zu überprüfen , wird durch die Art und Weise geladen , in dem die
Hier hat Bild einfügen Beschreibung
Anfrage kein Unternehmensname wird dynamisch durch die geladen wird , Beschreibung Informationen und Daten auf dieser Seite ist out ist ( Ajax)
Hier hat Bild einfügen Beschreibung
wir dann erfassen , was Ajaxdie Anforderung
Hier hat Bild einfügen Beschreibungwirklich der dynamischen Belastung ist aus
Hier hat Bild einfügen Beschreibung
können die Parameter sehen und so, hier erste summarise Informationen gefunden

#页面信息通过动态加载出来
Request URL: http://125.35.6.84:81/xk/itownet/portalAction.do?method=getXkzsList
Request Method: POST
Content-Type: application/json;charset=UTF-8

Da dieser Seite Informationen , die wir Nun haben analysiert, die dann an den spezifischen Blick Informationen über das Unternehmen lizenzieren, nur einen Punkt zu gehen , sehen Sie die folgenden Informationen
Hier hat Bild einfügen Beschreibung
hier auch die Informationen über die Verbindung analysieren müssen direkt dargestellt oder durch dynamische lädt aus, und nur Analyseverfahren, wie zu Hause, ich bin hier , um die direkte zu sehen AjaxAnfrage gefunden, dass ein
Hier hat Bild einfügen Beschreibung
Blick auf den Parametern nur idYige
Hier hat Bild einfügen Beschreibung
einige Unternehmen versuchen , wird feststellen , dass dies urldas gleiche ist, ist die einzige Änderung das Argument id
Hier hat Bild einfügen Beschreibung
hier so weit dann Statistiken über die Angaben auf der Seite

#信息也是通过动态加载出来的
Request URL: http://125.35.6.84:81/xk/itownet/portalAction.do?method=getXkzsById
Request Method: POST
Content-Type: application/json;charset=UTF-8

Nach der Analyse wird der Code geschrieben kriechen

0x02: kriechenden

Erste Seite von JSON - String es für die einfache Anzeige der Formatierung
Hier hat Bild einfügen Beschreibung
nach der Formatierung, ein Wörterbuch zu finden llistist eine Liste, die auch die Liste enthält das Wörterbuch, können Sie durchqueren valueWert, kann der Wert , der ID werden Hier hat Bild einfügen Beschreibung
Informationen zu dieser Zeit sammelten wir verwenden auf die

import requests

if __name__ == '__main__':
	#首页url,用于获取企业ID号
    url = 'http://125.35.6.84:81/xk/itownet/portalAction.do?method=getXkzsList'
    #UA伪装
    headers = {
        'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36'
    }
    #导入参数
    data = {
        'on': 'true',
        'page': '1',
        'pageSize': '15',
        'productName':'',
        'conditionType': '1',
        'applyname':'',
        'applysn':'',
    }
    #建立一个空列表永远存储ID值
    id_message = []
    #发起请求
    message = requests.post(url=url,data=data,headers=headers).json()
    #数据是一个字典,而list的value值中包含ID值,所以需要从value值中取出ID值
    for dict in message['list']:
        id_message.append(dict['ID'])
    print(id_message)

Sie werden auf dieser Seite , so dass Sie alle das Geschäft bekommen ID nach kriecht
Hier hat Bild einfügen Beschreibung
so ID eine bestimmte Lizenzinformationen Unternehmen in der Lage, um es zu zeigen , indem ID

import requests
import json
if __name__ == '__main__':
    url = 'http://125.35.6.84:81/xk/itownet/portalAction.do?method=getXkzsList'
    #UA伪装
    headers = {
        'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36'
    }
    #导入参数
    data = {
        'on': 'true',
        'page': '1',
        'pageSize': '15',
        'productName':'',
        'conditionType': '1',
        'applyname':'',
        'applysn':'',
    }
    #建立一个空列表永远存储ID值
    id_message = []
    #建立一个存储企业详细信息的列表
    all_date = []
    #发起请求
    message = requests.post(url=url,data=data,headers=headers).json()
    #数据是一个字典,而list的value值中包含ID值,所以需要从value值中取出ID值
    for dict in message['list']:
        id_message.append(dict['ID'])
    #根据ID号获得企业的详细数据
    date_url = 'http://125.35.6.84:81/xk/itownet/portalAction.do?method=getXkzsById'
    #遍历ID列表
    for id in id_message:
        datas = {
            'id': id
        }
        detail_message = requests.post(url=date_url,data=datas,headers=headers).json()
        # print(detail_message)
        #列表中存储
        all_date.append(detail_message)
    #存储到本地
    fp = open('message.txt','w',encoding='utf-8')
    json.dump(all_date,fp=fp,ensure_ascii=False,indent=4)
    print("爬取成功咯")

Hier hat Bild einfügen Beschreibung
Diese kriecht erfolgreich, wenn Sie mehr Seiten durchsuchen wollen einfach nicht die Mühe , 'page': '1'diesen Parameter auf Dynamische

0x03: Der endgültige Code

import requests
import json
if __name__ == '__main__':
    url = 'http://125.35.6.84:81/xk/itownet/portalAction.do?method=getXkzsList'
    #UA伪装
    headers = {
        'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36'
    }
    # 建立一个空列表永远存储ID值
    id_message = []
    # 建立一个存储企业详细信息的列表
    all_date = []
    #查询多页数据,添加一个循环即可
    for page in range(1,3):
        #转换为字符类型
        page = str(page)
       #导入参数
        data = {
            'on': 'true',
            'page': page,
            'pageSize': '15',
            'productName':'',
            'conditionType': '1',
            'applyname':'',
            'applysn':'',
        }
        #发起请求
        message = requests.post(url=url,data=data,headers=headers).json()
        #数据是一个字典,而list的value值中包含ID值,所以需要从value值中取出ID值
        for dict in message['list']:
            id_message.append(dict['ID'])
    #根据ID号获得企业的详细数据
    date_url = 'http://125.35.6.84:81/xk/itownet/portalAction.do?method=getXkzsById'
    #遍历ID列表
    for id in id_message:
        datas = {
            'id': id
        }
        detail_message = requests.post(url=date_url,data=datas,headers=headers).json()
        # print(detail_message)
        #列表中存储
        all_date.append(detail_message)
    #存储到本地
    fp = open('message.txt','w',encoding='utf-8')
    json.dump(all_date,fp=fp,ensure_ascii=False,indent=4)
    print("爬取成功咯")

Informationen getroffen Crawl
Hier hat Bild einfügen Beschreibung

Zusammenfassung:

Dieser Fall durch Ausbildung, die Analysemethode, die nächsten Lern gemeistert Datenanalyse !

Halten Sie zu dem besten Weg nach vorn! !

Veröffentlicht 71 Originalarbeiten · erntete Lob 80 · Ansichten 10000 +

Ich denke du magst

Origin blog.csdn.net/qq_43431158/article/details/104329070
Empfohlen
Rangfolge