Python学习推荐:python采集知乎后整理成表格的形式
优采云 发布时间: 2021-05-24 20:22
Python学习推荐:python采集知乎后整理成表格的形式
每次我去快递站领取包裹时,都会整理好几排货架,然后我可以根据取件号找到物品。类似地,如果我们获取大量数据,如果我们不及时对它们进行排序,那么下一次我们将很快感到困惑。使用python采集器采集 知乎之后,有什么方法可以将其组织成表格,以便查看?接下来,让我们看一下。
数据包括已回答问题的标题,答案的网址,答案的内容文本,喜欢的次数,发布时间和数据采集时间。
采集器的功能分为以下4个部分:
代码如下:
"""采用 python selenium 无头浏览器,爬取单个用户的所有回答数据并保存为表格文件。"""
from time import sleep
from datetime import datetime
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
import pandas as pd
def start_driver():
chrome_options = Options()
chrome_options.add_argument("--headless")
chrome_options.add_argument("--disable-gpu")
driver = webdriver.Chrome(options=chrome_options)
return driver
def get_answers_url(driver,url):
driver.get(url)
sleep(2)
rlts = driver.find_elements_by_xpath('//*[@id="Profile-answers"]/div[2]//div/div/h2/div/a')
answers = [[rlt.text,rlt.get_attribute("href")] for rlt in rlts]
return answers
def get_answers_text(driver,url):
driver.get(url)
sleep(2)
rlt = driver.find_element_by_class_name('RichContent-inner')
content = rlt.text
rlt = driver.find_element_by_class_name("ContentItem-time")
date = rlt.find_element_by_xpath(".//a/span").get_attribute("data-tooltip")
rlt = driver.find_element_by_class_name("ContentItem-actions")
upvote = rlt.find_element_by_xpath(".//span/button").get_attribute("aria-label")
return [content,date,upvote]
driver = start_driver()
url = "https://www.zhihu.com/people/haili-9-70/answers"
answers = get_answers_url(driver,url)
answers_dict = {}
for i in range(len(answers)):
answers_dict[i] = {}
answers_dict[i]["title"] = answers[i][0]
answers_dict[i]["url"] = answers[i][1]
answers_dict[i]["content"] = get_answers_text(driver,answers[i][1])[0]
answers_dict[i]["date"] = get_answers_text(driver,answers[i][1])[1]
answers_dict[i]["upvote"] = get_answers_text(driver,answers[i][1])[2]
answers_dict[i]["timestamp"] = str(datetime.now())[:-7]
df = pd.DataFrame(answers_dict).T
file = "./zhihu_answers_" str(datetime.now().date()) ".csv"
df.to_csv(file)
此脚本适合备份您的答案数据。
性能显示:
阅读上面的结果显示后,很清楚〜我们可以清晰地阅读标题,来源,答案等。更多Python学习建议:JQ教程网络Python百科全书。