舒适地一键下载英语真题资料
(注:笔者的原文发布在微信公众号“雪上空留码行处”)
笔者现在是大一学生,考完大学英语的第一场考试之后,原地爆炸
异常分析了一下之后,还是老老实实看看题吧!于是,在网上找资料的想法就产生了
01 模拟操作
首先,我们先进入一个放有资源的网站。我们现在获取资源的步骤,就是等一下代码要执行的步骤。笔者以这个网站为例:
往下拉,可以看到我们我们要的资源列表。点进去,里面就是我们想要的资源了。不同页面,有着不同的链接(url)
所以我们大概的步骤为:进入网站(获取index_url)—进入各资源页面(获取各页面的url)—获取资源(用库函数解析数据)
02 得到各个页面的URL
每个页面的URL都不同,怎么办呢?最简单的方式,就是查看网页的源代码,寻找各个URL共同的父类标签,这样才有可能顺利地解析出数据
可以看到各个链接都有着共同的、属性是style="color:#005a94"的标签,这就好办了
先引入requests以及BeautifulSoup库:(哈哈BeautifulSoup这名字好有诗意啊)
import requests
from bs4 import BeautifulSoup
用requests.get()来获得网页源代码,我们要获取的链接就在源代码里。接下来让BeautifulSoup来解析数据。
#进入首页,在首页获得各资源的网址
index_url='https://www.hjenglish.com/sijidaan/zuixinsijizhenti/'
#获取网页源代码
res=requests.get(index_url)
#用漂亮的汤来解析一下数据,这样才可以方便获取
soup=BeautifulSoup(res.text,'html.parser')
用find_all()来定位我们需要的标签。因为返回的是列表,所以我们循环遍历,就可以提取出想要的各个URL了。
urls=soup.find_all('a',style='color:#005a94')
for i in urls:#返回列表,需要循环遍历
url=i['href']#方括号后面跟的是属性值。此时就已经获得了各资源的网址了
03解析数据
这一步很简单,在源码里看想要的信息在哪里就好了
然后解析一下数据。因为此时,数据的位置是唯一的,用find即可
#再像刚刚那样解析一遍
res2= requests.get(url)
soup2= BeautifulSoup(res2.text, 'html.parser')
print('-------------------------------华丽的分割线------------------------------------')
title = soup2.find('h1', class_='title')
print(title.text)
article = soup2.find('div', class_='article-content')
print(article.text)
04 运行程序并保存资料
运行就好了!看着资料唰唰唰的出现在终端,笔者非常舒适
直接复制黏贴到本地
这样就可以得到英语真题啦!