Python作业题:
编程实现:利用requests爬虫库和beautifulsoup4解析库实现指定网站文章标题和对应网址爬取。
已知:
爬取网址:信息学院首页
编程实现爬取"计算机科学系"在"信息学院"主页上的网址
首先导包,我们需要requests(登录网站),BeatifulSoup(解析),urljoin(其实也可以不用,用于网址连接起来)
其次我们准备好url,就是华中农业大学信息学院网址。
然后利用requests得到结果respose,用utf-8编码,否则会得到一堆乱码。
如果我们成功访问(也就是返回的状态码为200),就可以继续提取信息了。
利用htmlparser解析这个文本,我们来看一看信息学院网站源码长什么样
在第二张图里面我们轻松地找到了计算机科学系的位置,它前面的链接即为作业的答案,所以我们只需要在利用bs生成的soup对象里面找到“计算机科学系”即可。
下面是代码
import requests
from urllib.parse import urljoin
from bs4 import BeautifulSoup
url = 'http://coi.hzau.edu.cn'
response = requests.get(url)
response.encoding='utf-8'
if response.status_code == 200:
soup = BeautifulSoup(response.text, 'html.parser')
link=soup.find('a',string="计算机科学系")
if link:
faculty_url = urljoin(url, link['href'])
print(faculty_url)
#paragraphs = soup.find_all('a')
else:
print('请求失败,状态码:', response.status_code)