教程:免费批量知乎采集工具
优采云 发布时间: 2022-10-29 16:23教程:免费批量知乎采集工具
“内容为王”,站长朋友们已经认可了这个观点。所以如何为一个网站创造更多优秀的内容,是站长最大的问题。不是每个人都有这么好的文笔,写得像神一样,每一篇文章都能达到高质量的文章,也不是每个人都有那么多时间,每天花很多时间写文章和创作内容。很多站长选择采集内容来填补自己的网站,但随机采集一些文章,不仅不会增加网站收录和排名,反而会产生相反的效果。
对于采集片,如何找到优质文章,首先要找到有针对性的采集的优质平台。知乎是一个原创内容平台,汇集了中国高质量的问答社区和互联网创作者。生活中和工作中遇到的很多问题都可以在知乎上找到你想要的答案!究其原因,是因为知乎的回答更加权威可靠。知乎有几个优点使其成为吸引人的重要渠道,首先,知乎的权重很高,每个人都应该了解它,当用户搜索相关信息和答案时,前几个一般都是知乎 文章或知乎答案,这表明知乎是一个受人们欢迎的优质平台。
说了这么多优点,下面就来聊聊如何采集知乎上述文章!如果一个接一个地复制和粘贴显然是不现实的,那么我们可以使用免费的知乎采集工具来做繁琐的采集工作。首先,让我们创建一个新的采集任务,例如知乎采集任务,然后在采集数据中选择搜狗知乎。接下来,选择一个采集文章文件夹并设置要关键词采集的文章数。最后,我们导入需要采集的关键词或长尾关键词,然后单击“保存”以开始采集。启动采集后,您可以实时查看工作进度,并且可以非常直观地清楚地了解当前的工作情况。这样,使用免费知乎采集工具已经非常繁琐的事情变得非常简单、高效和准确!
免费知乎文章采集我们将采集以下字段:问题名称,问题描述,评论数,问题URL,答案ID,答案ID描述,答案ID头像,答案正文和其他字段。操作简单,操作傻瓜式,不需要我们编写采集规则。对多个新闻源采集的强大支持,可以通过简单的设置采集。采集可以设置多个任务来采集不同的源。
超值资料:微信小程序,Python爬虫抓包采集实战,采集某成考题库小程序
@[目录]
⛳️实战场景
从这篇博客开始,我们将为微信小程序编写一系列爬虫,仍然以案例链接,确保对大家的学习有所帮助。
[英文]
从本篇博客开始,我们将为微信小程序编写一系列爬虫,仍然通过案例连接,确保对大家的学习有所帮助。
正式开始前准备好工具,一个可以解析https协议请求的软件fiddler,微信电脑版。
由于微信在 2022 年 5 月调整了小程序架构,因此需要在正式启动前对环境进行基本配置,以方便抓包网络数据包。
如果你的 fiddler 启动后能成功抓包,则不需要这一步。
在如下路径找到文件夹,然后清空文件夹,然后重启微信,即可在小程序中获取https请求,效果如下图。
C:\Users\Administrator\AppData\Roaming\Tencent\WeChat\XPlugin\Plugins\WMPFRuntime
由于 Python 存在侵权问题,因此对关键站点信息进行了编码。
捕获请求后,首先分析请求地址。本集的目标站点提供以下规则(练习开始时可以获取更多不同的地址):
[英文]
捕获请求后,首先分析请求地址。本次合集的目标站点呈现如下规则(练习之初可以获取更多不同的地址):
weixin.不能展示的作品地址.com/app/index.php?i=1063&t=0&v=1.0.0&from=wxapp&c=entry&a=wxapp&do=gettopic&m=huitong_shuati&sign=指纹地址&topic_class_id=30702&ordinal=1
weixin.不能展示的作品地址.com/app/index.php?i=1063&t=0&v=1.0.0&from=wxapp&c=entry&a=wxapp&do=gettopic&m=huitong_shuati&sign=指纹地址&topic_class_id=30702&ordinal=2
猜参数的时候发现了sign加密参数,比较麻烦,因为我们没办法调试。如果参数需要解析,我们还是面临着小程序解包的问题,但是实际的后续分析,让我松了一口气,这个参数并没有参与计算。
其核心参数如下:
如果你只有这些参数,你可以在空白的谷歌浏览器中迭代,看看是否可以通过切换标题号直接获取所有问题。
[英文]
如果只有这些参数,可以在空白的谷歌浏览器中迭代,判断是否可以通过切换题号直接获取所有问题。
随着问题数量的不断增加,结果,当问题不存在时,得到如下响应信息。
{"errno":0,"message":"\u9898\u7684\u6570\u636e\u83b7\u53d6\u5931\u8d25","data":{"status":0}}
将unicode转码后会提示该题不存在,表示试卷中的所有题都已解析完毕。
成功获取试题后,可以获得干题、选项、分析等信息,包括试题总数。有了这些数据后,就可以进入编码练习环节了。
[英文]
成功拿题,得到干题、选项、分析,包括题目总数等信息,有了这些数据后,就可以进入编码实战环节了。
以下代码主要通过 Python requests 模块实现。
⛳️ 实际编码
在实践中,可以先将数据存储在 MySQL 中(也可以直接存储 JSON 文件),然后进行后续的读取操作。
以下是需求实现步骤的摘要:
1.获取分类页面试题类型
该页面的访问地址如下:
weixin.不能展示的作品地址.com/app/index.php?i=1063&t=0&v=1.0.0&from=wxapp&c=entry&a=wxapp&do=fenlei_data&state=指纹地址&m=huitong_shuati&sign=指纹地址&up_class_id=3464&openid=om76m4sMOiBzooHFFKbqcZJFysq0
2.获取试卷科目数据
获取地址如下:
weixin.不能展示的作品地址.com/app/index.php?i=1063&t=0&v=1.0.0&from=wxapp&c=entry&a=wxapp&do=fenlei_data&state=指纹地址&m=huitong_shuati&sign=指纹地址&up_class_id=24321&openid=om76m4sMOiBzooHFFKbqcZJFysq0
3.获取试卷分组数据
https://weixin.不能展示的作品地址.com/app/index.php?i=1063&t=0&v=1.0.0&from=wxapp&c=entry&a=wxapp&do=fenlei_data&state=指纹地址&m=huitong_shuati&sign=指纹地址&up_class_id=24377&openid=om76m4sMOiBzooHFFKbqcZJFysq0
4.获取群下的试卷
https://weixin.不能展示的作品地址.com/app/index.php?i=1063&t=0&v=1.0.0&from=wxapp&c=entry&a=wxapp&do=fenlei_data&state=指纹地址&m=huitong_shuati&sign=指纹地址&up_class_id=30658&openid=om76m4sMOiBzooHFFKbqcZJFysq0
5.获取测试题
https://weixin.不能展示的作品地址.com/app/index.php?i=1063&t=0&v=1.0.0&from=wxapp&c=entry&a=wxapp&do=gettopic&state=指纹地址&m=huitong_shuati&sign=指纹地址&topic_class_id=30659&ordinal=1
得到这五个地址后,我们需要进一步整理分析,看看是否可以跳过中间步骤。
[英文]
得到这五个地址后,我们还需要进一步整理分析,看看是否有中间跳过步骤的可能。
过滤后得到下图,其中up_class_id作为核心参数脱颖而出。
所以后面的内容可以围绕up_class_id来写。获取二级分类数据的代码如下:
import requests
import pymysql
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36"
}
def get_conn():
conn = pymysql.connect(
host='127.0.0.1',
user='你的账号',
db='question_scrapy',
port=3306,
cursorclass=pymysql.cursors.DictCursor
)
return conn
def run():
res = requests.get(
'https://weixin.不能展示的作品地址.com/app/index.php?i=1063&from=wxapp&c=entry&a=wxapp&do=fenlei_data&m=huitong_shuati&up_class_id=3464',
headers=headers, timeout=5, verify=False)
json_data = res.json()
if json_data["errno"] == 0:
fenlei_data = json_data["data"]['0']["fenlei_data"]
insert_fenlei(fenlei_data)
<p>
def insert_fenlei(fenlei_data):
conn = get_conn()
cursor = conn.cursor()
for item in fenlei_data:
up_class_id = item["id"]
topic_class_name = item["topic_class_name"]
cursor.execute(
f'insert into fenlei_data values({up_class_id},"{topic_class_name}")')
try:
conn.commit()
except Exception as e:
conn.rollback()
cursor.close()
conn.close()
if __name__ == '__main__':
run()
</p>
输入插入结果如下所示:
四层页面全部完成采集,得到的数据如下:
拿到这份清单后,就可以批量采集试题,直接通过最后一个链接地址获取。
[英文]
拿到这份清单后,就可以批量采集试题,直接通过最后一个链接地址获取。
def get_question(topic_class_id, ordinal=1):
url = f'https://weixin.不能展示的作品地址.com/app/index.php?i=1063&from=wxapp&c=entry&a=wxapp&do=gettopic&m=huitong_shuati&topic_class_id={topic_class_id}&ordinal={ordinal}'
res = requests.get(url, headers=headers)
data = res.json()["data"]
if data["status"] == 1:
questions_count = data["count"]
for num in range(1,int(questions_count)+1):
url = f'https://weixin.不能展示的作品地址.com/app/index.php?i=1063&from=wxapp&c=entry&a=wxapp&do=gettopic&m=huitong_shuati&topic_class_id={topic_class_id}&ordinal={num}'
res = requests.get(url, headers=headers)
print(res.json()["data"]["topic_data"][0])
您正在阅读[梦橡皮擦]的博客
看完可以点个赞