Python番外篇:网络爬虫组词程序

今天,双是番外篇,这次番外篇主要教大家如何用网络爬虫查询词语。

1.确定数据源

首先,我们得找一个查询的数据源,我找到了360国学网站,选择“词语大全”,它的查询词语网址为:

https://guoxue.baike.so.com/query/index/

这后面得加上亿些参数:

  1. type = phrase
  2. text = 圆组词
  3. word_inc = 圆

2. 给请求添加数据源网址参数

用word来代替“圆”,写成Python字典:

word = input("请输入你想组词的字:")
key_dict = {
    
    'type': 'phrase',
            'text': word+'组词',
            'word_inc': word
            }

发出请求:

import requests

word = input("请输入你想组词的字:")
key_dict = {
    
    'type': 'phrase',
            'text': word+'组词',
            'word_inc': word
            }
            
url = 'https://guoxue.baike.so.com/query/index/'
r = requests.get(url, params=key_dict)
print(r.status_code)

输出:

200

说明请求正常。

3.解析词语页面

词语页面
经过分析,我们发现,所有的词语都在一个div标签中(绿色标注处),在里面,每个单独的div标签又嵌套了3个div标签,其中的一个(橙色标注处)的内容是我们需要的词语。

from bs4 import BeautifulSoup as bs
import requests

word = input("请输入你想组词的字:")
key_dict = {
    
    'type': 'phrase',
            'text': word+'组词',
            'word_inc': word
            }
            
url = 'https://guoxue.baike.so.com/query/index/'
r = requests.get(url, params=key_dict)

soup = bs(r.text, 'html.parser')
# 查找上图绿色标注标签
div_content = soup.find("div", {
    
    'class': 'content'})
# 查找上图橙色标注标签中的a标签
all_title = div_content.find_all('a', {
    
    'data-logid': "ordinal_incgroup_phrases"})
# 加入判断 判断all_title是否为空
if all_title:
	# 如果all_title不为空
	print('\n'+word+"组词有:\n")
	for t in all_title:
		# 遍历所有a标签内容
		print(t.string)
	print("\n查看更多信息可前往:\n"+r.url)
else:
	print("\n组词内容无法查询到!")

4.测试代码

以上就是我们今天全部的代码,我们来试着运行亿下:


请输入你要查询的字:圆

圆组词有:

圆滑
方圆
圆通
团圆
珠圆玉润
方枘圆凿
破镜重圆
事宽即圆
圆润
自圆其说

查看更多信息可前往:
https://guoxue.baike.so.com/query/index/?type=phrase&text=%E5%9C%86%E7%BB%84%E8%AF%8D&word_inc=%E5%9C%86


针不戳,那今天的课程就到这儿了,感兴趣的可以爬取词语拼音或解释,有什么问题请在评论区讨论,喜欢的话可以收藏一下,再见!
另外,不了解requests模块和BeautifulSoup4模块的可以前往笔者的Python:第三方库requestsPython:第三方库BeautifulSoup4去看看。

猜你喜欢

转载自blog.csdn.net/wangzirui32/article/details/113096380
今日推荐