Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Pertempuran crawler praktikal dalam Python: crawler Toutiao

Pertempuran crawler praktikal dalam Python: crawler Toutiao

WBOY
WBOYasal
2023-06-10 13:00:142389semak imbas

Amalan crawler dalam Python: Perangkak Toutiao Today

Dalam era maklumat hari ini, Internet mengandungi sejumlah besar data, dan permintaan untuk menggunakan data ini untuk analisis dan aplikasi semakin tinggi. Sebagai salah satu cara teknikal untuk mencapai pemerolehan data, perangkak juga telah menjadi salah satu bidang penyelidikan yang popular. Artikel ini terutamanya akan memperkenalkan perangkak sebenar dalam Python dan memberi tumpuan kepada cara menggunakan Python untuk menulis program perangkak untuk Toutiao.

  1. Konsep asas perangkak

Sebelum mula memperkenalkan perangkak sebenar dalam Python, kita perlu terlebih dahulu memahami konsep asas perangkak.

Ringkasnya, perangkak meniru gelagat penyemak imbas melalui kod dan mengambil data yang diperlukan daripada tapak web. Proses khusus ialah:

  1. Hantar permintaan: Gunakan kod untuk menghantar permintaan HTTP ke tapak web sasaran.
  2. Menghuraikan dan mendapatkan: Gunakan pustaka penghuraian untuk menghuraikan data halaman web dan menganalisis kandungan yang diperlukan.
  3. Memproses data: Simpan data yang diperoleh secara setempat atau gunakannya untuk operasi lain.
  4. Perpustakaan yang biasa digunakan untuk perangkak Python

Apabila membangunkan perangkak Python, terdapat banyak pustaka yang biasa digunakan terdapat beberapa perpustakaan yang lebih biasa digunakan adalah seperti berikut:

  1. permintaan: Pustaka untuk menghantar permintaan HTTP dan memproses hasil respons.
  2. BeautifulSoup4: Pustaka untuk menghuraikan dokumen seperti HTML dan XML.
  3. semula: Pustaka ungkapan biasa Python untuk mengekstrak data.
  4. scrapy: Rangka kerja perangkak yang popular dalam Python, menyediakan fungsi perangkak yang sangat kaya.
  5. Amalan perangkak Toutiao hari ini

Toutiao hari ini ialah tapak web maklumat yang sangat popular, yang mengandungi sejumlah besar berita, hiburan, teknologi dan kandungan maklumat lain. Kita boleh mendapatkan kandungan ini dengan menulis program perangkak Python yang mudah.

Sebelum bermula, anda perlu memasang permintaan dan perpustakaan BeautifulSoup4 terlebih dahulu. Kaedah pemasangan adalah seperti berikut:

pip install requests
pip install beautifulsoup4

Dapatkan maklumat halaman utama Toutiao:

Mula-mula kita perlu mendapatkan kod HTML halaman utama Toutiao.

import requests

url = "https://www.toutiao.com/"

# 发送HTTP GET请求
response = requests.get(url)

# 打印响应结果
print(response.text)

Selepas melaksanakan program, anda boleh melihat kod HTML halaman utama Toutiao.

Dapatkan senarai berita:

Seterusnya, kita perlu mengekstrak maklumat senarai berita daripada kod HTML. Kita boleh menggunakan perpustakaan BeautifulSoup untuk menghurai.

import requests
from bs4 import BeautifulSoup

url = "https://www.toutiao.com/"

# 发送HTTP GET请求
response = requests.get(url)

# 创建BeautifulSoup对象
soup = BeautifulSoup(response.text, "lxml")

# 查找所有class属性为title的div标签,返回一个列表
title_divs = soup.find_all("div", attrs={"class": "title"})

# 遍历列表,输出每个div标签的文本内容和链接地址
for title_div in title_divs:
    title = title_div.find("a").text.strip()
    link = "https://www.toutiao.com" + title_div.find("a")["href"]
    print(title, link)

Selepas melaksanakan program, senarai berita di halaman utama Toutiao akan dikeluarkan, termasuk tajuk dan alamat pautan setiap berita.

Dapatkan butiran berita:

Akhir sekali, kami boleh mendapatkan butiran setiap berita.

import requests
from bs4 import BeautifulSoup

url = "https://www.toutiao.com/a6931101094905454111/"

# 发送HTTP GET请求
response = requests.get(url)

# 创建BeautifulSoup对象
soup = BeautifulSoup(response.text, "lxml")

# 获取新闻标题
title = soup.find("h1", attrs={"class": "article-title"}).text.strip()

# 获取新闻正文
content_list = soup.find("div", attrs={"class": "article-content"})
# 将正文内容转换为一个字符串
content = "".join([str(x) for x in content_list.contents])

# 获取新闻的发布时间
time = soup.find("time").text.strip()

# 打印新闻的标题、正文和时间信息
print(title)
print(time)
print(content)

Selepas melaksanakan program, tajuk, teks dan maklumat masa berita akan dikeluarkan.

  1. Ringkasan

Melalui pengenalan artikel ini, kami telah mempelajari tentang konsep asas perangkak dalam Python, perpustakaan yang biasa digunakan dan cara menggunakan Python untuk menulis Toutiao program crawler. Sudah tentu, teknologi crawler ialah teknologi yang memerlukan penambahbaikan dan penambahbaikan berterusan.

Atas ialah kandungan terperinci Pertempuran crawler praktikal dalam Python: crawler Toutiao. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn