Author Warning:
The data obtained by crawlers should only be used for academic research.
At the same time, you should pay attention to the crawl frequency, not to cause excessive pressure on other people’s servers.
看知乎这里的各种问题还挺有趣的,心血来潮想研究一下。
听朋友说八爪鱼这款软件挺好用的,想着瞅一下看看。
然而然而!!!
看到这里我们郁闷了,旗舰版???
接着我就去官网瞅了瞅价格,一年1999???
@八爪鱼采集器
@刘宝强(八爪鱼CEO)
二位大爷,我想想哔哩哔哩会员一年+爱奇艺会员一年+知乎live一年不过585人民币,不到这个的1/3。。。
没有体验版的,对一般群众实在很难说很友好/哭
看了看自己日渐消瘦的钱包,还是自己爬吧!
接下来我将实现八爪鱼上关于知乎爬虫模版的所有功能。
导包
import os
import pandas as pd
from selenium import webdriver
from lxml import etree
import time
import jieba
import re
import numpy as np
url1 = input("请输入您所需要爬取的网页(知乎)")
例如我在这里爬取问题(https://www.zhihu.com/question/22164041/answer/148128347)
《排名在前 1% 的高中生是靠天赋还是靠努力?》
browser = webdriver.Chrome("/Users/apple/Downloads/chromedrivermac") #这里写上你的ChromeDriver的路径
browser.get(url1)
接着就开始模拟爬虫啦~!
让浏览器模拟人去点击“显示全部”,进而得到问题全部的描述
同时考虑到有些问题本身就比较简短,没有“显示全部”这个按钮,所以使用try-except语句进行规避。
try:
#点击问题全部内容
button1 = browser.find_elements_by_xpath("""//div[@class= "QuestionHeader-detail"]
//button[contains(@class,"Button") and contains(@class,"QuestionRichText-more")
and contains(@class , "Button--plain")
]""")[0]
button1.click()
except:
print('这个问题比较简单,并没有问题的全部内容哦!')
对于广大的知乎er,都知道知乎是下拉之后才能得到更多的回答的。所以,我接下来就开始模拟人下拉的动作。
#此网页就属于异步加载的情况<