Teknologian jakaminen

Python pyytää indeksointirobottia

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Pythonin pyyntökirjasto on tehokas ja helppokäyttöinen HTTP-kirjasto HTTP-pyyntöjen lähettämiseen ja vastausten käsittelyyn. Se on yksi Pythonin suosituimmista indeksointikehyksistä, ja sitä käytetään laajalti tietojen poimimiseen verkkosivuilta, verkkosivustojen indeksoimiseen ja API-kutsujen tekemiseen.

Pyyntökirjaston avulla voit helposti lähettää erilaisia ​​HTTP-pyyntöjä, mukaan lukien GET, POST, PUT, DELETE jne. Voit luoda HTTP-pyyntöobjektin, asettaa pyynnön otsikot, pyynnön rungon ja muut parametrit, lähettää pyynnön ja saada vastauksen. Pyyntökirjasto tarjoaa monia käteviä menetelmiä vastausten käsittelyyn, mukaan lukien vastaussisällön hankkiminen, JSON-jäsennys, HTML-jäsennys jne.

Jos pyyntöjä ei ole asennettu paikalliseen Python-ympäristöön, voit kirjoittaa komennon komentokehoteikkunaan

pip install requests

Asenna pyyntömoduuli

Voimme avata verkkosivun halutessasi, F12->"Ctrl+R" päivittääksesi, kaksoisnapsauta nimessä olevaa kohdetta

Näet käyttäjäagentin ja evästeen

Seuraavassa on joitain yleisesti käytettyjä pyyntökirjaston toimintoja ja käyttöä:

  1. Lähetä GET-pyyntö:

    response = requests.get(url)
    

  2. Lähetä POST-pyyntö:

    response = requests.post(url, data=payload)
    

  3. Aseta pyyntöjen otsikot:

    1. headers = {'User-Agent': 'Mozilla/5.0'}
    2. response = requests.get(url, headers=headers)

  4. Välitä URL-parametrit:

    1. params = {'key1': 'value1', 'key2': 'value2'}
    2. response = requests.get(url, params=params)

  5. Lähetä tiedosto:

    1. files = {'file': open('file.txt', 'rb')}
    2. response = requests.post(url, files=files)

  6. Hanki vastauksen sisältö:

    print(response.text)
    

  7. Jäsennä JSON-vastaus:

    json_data = response.json()
    

  8. Jäsennä HTML-vastaus:

    1. from bs4 import BeautifulSoup
    2. soup = BeautifulSoup(response.text, 'html.parser')

  9. Poikkeusten käsittely:

    1. try:
    2. response = requests.get(url)
    3. response.raise_for_status()
    4. except requests.HTTPError as e:
    5. print('HTTPError:', e)
    6. except requests.ConnectionError as e:
    7. print('ConnectionError:', e)
    8. except requests.Timeout as e:
    9. print('Timeout:', e)
    10. except requests.RequestException as e:
    11. print('RequestException:', e)

Yllä oleva on vain pieni osa pyyntökirjaston toiminnoista. Se tarjoaa myös monia muita edistyneitä toimintoja ja vaihtoehtoja, kuten istunnon hallinta, todennus, välityspalvelimen asetukset jne., joiden avulla voit tehdä web-indeksoinnin ja API-kutsut helposti.

Täydellinen pyyntötoimintorutiini:

  1. import requests
  2. def get_html(url):
  3. '''
  4. 两个参数
  5. :param url:统一资源定位符,请求网址
  6. :param headers:请求头
  7. :return html 网页的源码
  8. :return sess 创建的会话
  9. '''
  10. # 请求头
  11. headers={'User-Agent': '复制了放这里'}
  12. # 创建Session, 并使用Session的get请求网页
  13. sess = requests.Session()
  14. response = sess.get(url=url,headers = headers)
  15. # 获取网页信息文本
  16. html = response.text
  17. return html, sess