Python ist eine elegante Programmiersprache mit leistungsstarken Datenverarbeitungs- und Web-Crawling-Funktionen. In diesem digitalen Zeitalter ist das Internet mit großen Datenmengen gefüllt, und Crawler sind zu einem wichtigen Mittel zur Datenbeschaffung geworden. Daher werden Python-Crawler häufig in der Datenanalyse und beim Mining eingesetzt.
In diesem Artikel stellen wir vor, wie Sie den Python-Crawler verwenden, um Artikelinformationen zu öffentlichen WeChat-Konten zu erhalten. Der offizielle WeChat-Account ist eine beliebte Social-Media-Plattform für die Online-Veröffentlichung von Artikeln und ein wichtiges Instrument für die Werbung und das Marketing vieler Unternehmen und Self-Media.
Hier sind die Schritte:
Python bietet viele Crawler-Bibliotheken zur Auswahl. In diesem Beispiel verwenden wir die Python-Crawler-Bibliothek beautifulsoup4, um Artikelinformationen zu öffentlichen WeChat-Konten zu extrahieren. Verwenden Sie pip, um diese Bibliothek zu installieren:
pip install beautifulsoup4
Es ist sehr einfach, die historischen Artikel eines öffentlichen Kontos abzurufen. Zuerst müssen wir den Namen oder die ID des öffentlichen Kontos finden. Beispiel: Die ID des öffentlichen Kontos „Zen of Python“ lautet „Zen-of-Python“.
Es ist schwierig, Daten direkt aus der WeChat-Webversion zu erfassen, daher benötigen wir Tools, um die Artikellistenseite einfach abzurufen. In diesem Beispiel verwende ich den von Sogou WeChat Search bereitgestellten Dienst, mit dem die Artikellistenseite jedes öffentlichen Kontos auf WeChat problemlos abgerufen werden kann.
Wir müssen das Robot-Framework und die Selenium-Bibliothek installieren, um Browservorgänge zu simulieren und die Artikellistenseite über die Suchmaschine abzurufen.
pip install robotframework pip install robotframework-seleniumlibrary pip install selenium
Für jeden Artikellink benötigen wir auch einige zusätzliche Artikelinformationen, wie z. B. Artikeltitel, Veröffentlichungszeit, Autor usw. Auch hier werden wir die Bibliothek beautifulsoup4 verwenden, um diese Informationen zu extrahieren.
Das Folgende ist ein Codeausschnitt, mit dem Artikellinks zu öffentlichen Konten sowie der Titel, die Veröffentlichungszeit, das Lesevolumen und die Anzahl der Likes jedes Artikels gecrawlt werden können:
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)
Das Obige ist der gesamte Inhalt der Python-Übung dieses Artikels : Crawler für öffentliche WeChat-Konten. Dieser Crawler kann relevante Informationen aus historischen Artikeln öffentlicher WeChat-Konten abrufen und über die beautifulsoup4-Bibliothek und Selenium-Tools eine spezifischere Extraktionsverarbeitung durchführen. Wenn Sie daran interessiert sind, mithilfe von Python-Crawlern wertvollere Informationen aufzudecken, ist dieses Beispiel ein guter Ausgangspunkt.
Das obige ist der detaillierte Inhalt vonPraktischer Crawler-Kampf in Python: WeChat-Crawler für öffentliche Konten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!