Python爬取百度百科简介以及内链词条简介
Python爬取百度百科简介以及内链词条简介
注意初始中文词条需要转换(不转换会报错UnicodeEncodeError: 'ascii' codec can't encode characters in position 10-12: ordinal not in range(128)):
如:爱奇艺--->urllib.parse.quote("爱奇艺")-->%E7%88%B1%E5%A5%87%E8%89%BA
程序源码
from urllib.request import urlopen
import urllib
from bs4 import BeautifulSouppages = set()
def getLink(pageurl):global pagesheaders = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3100.0 Safari/537.36"}print('{}'.format(pageurl))html = urlopen(urllib.request.Request('{}'.format(pageurl), headers=headers))bs = BeautifulSoup(html, 'html.parser')try:print(bs.h1.get_text())for text in bs.find('div', {'class': 'lemma-summary'}).find_all('div', {'class': 'para'}):print(text.get_text())for link in bs.find('div', {'class': 'para'}).find_all('a'):if 'href' in link.attrs:print(link.attrs['href'])else:print('-----非链接-----')print(link)print('-----非链接-----')except AttributeError:print("yemianqieshaoshuxing")for link in bs.find('div', {'class': 'para'}).find_all('a', href=repile('^(/item/)')):if 'href' in link.attrs:if link.attrs['href'] not in pages:newpage = link.attrs['href']print('-'*20)print(newpage)pages.add(newpage)getLink(newpage)get_ = '/item/爱奇艺'
print(get_)
getLink(urllib.parse.quote(get_))
最新文章
- ROS1云课→29如何借助导航实现走迷宫机器人
- 老鼠出迷宫问题(Java)(递归)
- 老鼠走迷宫算法
- matlab多元回归分析怎么计算,matlab在多元线性回归分析中的相关计算
- 关于 Rowid
- 关于C语言编程中include的用法
- IIS攻击与日志
- TextOut字体设置
- 如何下载并使用HTK工具包
- 芯片的本质是什么?(4)物质与数字世界接口
- VSS使用帮助2
- YumRepo Error: All mirror URLs are not using ftp, http[s] or file解决办法
- 小程序(倒计时的制作)
- Vue面试题分享之Vue双向绑定数据原理
- SQL注入
- 什么是DbC
- 【CTDB】什么是CTDB(Cluster Trivial Database)