Pertempuran perangkak praktikal dalam Python: perangkak akaun awam WeChat

WBOY
Lepaskan: 2023-06-10 09:01:36
asal
1554 orang telah melayarinya

Python ialah bahasa pengaturcaraan yang elegan dengan pemprosesan data yang berkuasa dan keupayaan merangkak web. Dalam era digital ini, Internet dipenuhi dengan sejumlah besar data, dan crawler telah menjadi cara penting untuk mendapatkan data Oleh itu, crawler Python digunakan secara meluas dalam analisis data dan perlombongan.

Dalam artikel ini, kami akan memperkenalkan cara menggunakan perangkak Python untuk mendapatkan maklumat artikel akaun awam WeChat. Akaun rasmi WeChat ialah platform media sosial yang popular untuk menerbitkan artikel dalam talian dan merupakan alat penting untuk promosi dan pemasaran banyak syarikat dan media sendiri.

Berikut ialah langkahnya:

  1. Pasang pustaka perangkak Python

Python mempunyai banyak pustaka perangkak untuk dipilih. Dalam contoh ini, kami akan menggunakan pustaka perangkak python beautifulsoup4 untuk mengekstrak maklumat artikel akaun awam WeChat. Gunakan pip untuk memasang pustaka ini:

pip install beautifulsoup4
Salin selepas log masuk
  1. Dapatkan pautan artikel sejarah akaun awam WeChat

Sangat mudah untuk merebut artikel sejarah akaun awam. Mula-mula kita perlu mencari nama atau ID akaun awam Contohnya: ID akaun awam "Zen of Python" ialah "Zen-of-Python".

Sukar untuk menangkap data secara langsung daripada versi web WeChat, jadi kami memerlukan alat untuk mendapatkan halaman senarai artikel dengan mudah. Dalam contoh ini, saya akan menggunakan perkhidmatan yang disediakan oleh Sogou WeChat Search, yang boleh dengan mudah mendapatkan halaman senarai artikel bagi setiap akaun awam di WeChat.

Kami perlu memasang rangka kerja Robot dan perpustakaan Selenium untuk mensimulasikan operasi penyemak imbas dan mendapatkan halaman senarai artikel melalui enjin carian.

pip install robotframework
pip install robotframework-seleniumlibrary
pip install selenium
Salin selepas log masuk
  1. Dapatkan maklumat artikel tambahan

Untuk setiap pautan artikel, kami juga perlu mendapatkan beberapa maklumat artikel tambahan, seperti tajuk artikel, masa penerbitan, pengarang, dsb. Sekali lagi, kami akan menggunakan perpustakaan beautifulsoup4 untuk mengekstrak maklumat ini.

Berikut ialah coretan kod, yang boleh menangkap pautan artikel akaun awam, serta tajuk, masa penerbitan, jumlah bacaan dan bilangan suka bagi setiap artikel:

import requests
from bs4 import BeautifulSoup
import time

url = "http://weixin.sogou.com/weixin?type=1&query={}".format("Python之禅")

# 使用Selenium工具来模拟浏览器操作
from selenium import webdriver

driver = webdriver.Chrome()
driver.get(url)

# 执行搜索动作
search_box = driver.find_element_by_xpath('//*[@id="query"]')
search_box.send_keys(u"Python之禅")
search_box.submit()

# 点击搜索结果中的公众号
element = driver.find_element_by_xpath('//div[@class="news-box"]/ul/li[2]/div[2]/h3/a')
element.click()

# 等待页面加载
time.sleep(3)

# 点击“历史消息”链接
element = driver.find_element_by_xpath('//a[@title="历史消息"]')
element.click()

# 等待页面加载
time.sleep(3)

# 获取文章链接
soup = BeautifulSoup(driver.page_source, 'html.parser')
urls = []
for tag in soup.find_all("a", href=True):
    url = tag["href"]
    if "mp.weixin.qq.com" in url:
        urls.append(url)

# 获取每篇文章的标题、发布时间、阅读量和点赞数
for url in urls:
    response = requests.get(url)
    response.encoding = 'utf-8'
    soup = BeautifulSoup(response.text, 'html.parser')

    title = soup.find('h2', {'class': 'rich_media_title'}).text.strip()
    date = soup.find('em', {'id': 'post-date'}).text.strip()
    readnum = soup.find('span', {'class': 'read_num'}).text.strip()
    likenum = soup.find('span', {'class': 'like_num'}).text.strip()
    print(title, date, readnum, likenum)
Salin selepas log masuk

The di atas ialah pelaksanaan Python sebenar artikel ini: Semua kandungan perangkak akaun awam WeChat. Perangkak ini boleh mendapatkan maklumat yang berkaitan daripada artikel sejarah akaun awam WeChat dan melakukan pemprosesan pengekstrakan yang lebih khusus melalui perpustakaan beautifulsoup4 dan alatan Selenium. Jika anda berminat untuk menggunakan perangkak Python untuk mendedahkan maklumat yang lebih berharga, contoh ini adalah titik permulaan yang bagus.

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

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan