>  기사  >  백엔드 개발  >  Python의 실제 크롤러 전투: WeChat 공개 계정 크롤러

Python의 실제 크롤러 전투: WeChat 공개 계정 크롤러

WBOY
WBOY원래의
2023-06-10 09:01:361564검색

Python은 강력한 데이터 처리 및 웹 크롤링 기능을 갖춘 우아한 프로그래밍 언어입니다. 디지털 시대에 인터넷은 엄청난 양의 데이터로 가득 차 있으며, 크롤러는 데이터를 얻는 중요한 수단이 되었습니다. 따라서 데이터 분석 및 마이닝에 Python 크롤러가 널리 사용됩니다.

이 기사에서는 Python 크롤러를 사용하여 WeChat 공개 계정 기사 정보를 얻는 방법을 소개합니다. WeChat 공식 계정은 온라인에 기사를 게시하는 인기 있는 소셜 미디어 플랫폼이며 많은 기업과 셀프 미디어의 홍보 및 마케팅을 위한 중요한 도구입니다.

단계는 다음과 같습니다.

  1. Python 크롤러 라이브러리 설치

Python에는 선택할 수 있는 크롤러 라이브러리가 많이 있습니다. 이 예에서는 Python 크롤러 라이브러리 beautifulsoup4를 사용하여 WeChat 공개 계정 기사 정보를 추출합니다. pip를 사용하여 이 라이브러리를 설치하세요.

pip install beautifulsoup4
  1. WeChat 공개 계정의 역사적인 기사 링크 받기

공개 계정의 역사적인 기사를 가져오는 것은 매우 간단합니다. 먼저 공식 계정의 이름이나 ID를 찾아야 합니다. 예를 들어 "Zen of Python" 공식 계정의 ID는 "Zen-of-Python"입니다.

WeChat 웹 버전에서는 데이터를 직접 캡처하기가 어렵기 때문에 기사 목록 페이지를 쉽게 얻을 수 있는 도구가 필요합니다. 이번 예시에서는 위챗의 각 공개 계정의 기사 목록 페이지를 쉽게 얻을 수 있는 Sogou WeChat Search에서 제공하는 서비스를 사용하겠습니다.

브라우저 작동을 시뮬레이션하고 검색 엔진을 통해 기사 목록 페이지를 얻으려면 Robot 프레임워크와 Selenium 라이브러리를 설치해야 합니다.

pip install robotframework
pip install robotframework-seleniumlibrary
pip install selenium
  1. 추가 기사 정보 가져오기

각 기사 링크에 대해 기사 제목, 출판 시간, 저자 등과 같은 추가 기사 정보도 가져와야 합니다. 이번에도 beautifulsoup4 라이브러리를 사용하여 이 정보를 추출하겠습니다.

다음은 공개 계정 기사의 링크와 각 기사의 제목, 발행 시간, 읽은 양, 좋아요 수를 캡처할 수 있는 코드 조각입니다.

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)

위는 이것에 대한 Python 실제 전투입니다. 기사: WeChat 공개 계정 크롤러의 전체 콘텐츠입니다. 이 크롤러는 WeChat 공개 계정의 과거 기사에서 관련 정보를 얻을 수 있으며 beautifulsoup4 라이브러리 및 Selenium 도구를 통해 보다 구체적인 추출 처리를 수행할 수 있습니다. 더 가치 있는 정보를 찾기 위해 Python 크롤러를 사용하는 데 관심이 있다면 이 예가 좋은 출발점이 될 것입니다.

위 내용은 Python의 실제 크롤러 전투: WeChat 공개 계정 크롤러의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.