IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> Python爬取托福阅读练习题 -> 正文阅读

[Python知识库]Python爬取托福阅读练习题

相信考托的老铁们都知道题目的可贵,在这里跟大家分享一下托福tpo爬虫,这里爬取的是阅读。

首先设置请求头。ua自行在chrome开发者复制粘贴,这里不赘述。

headers = {
	'Host':'top.zhan.com',
	'Referer':'http://top.zhan.com/toefl/speak/task12.html',
	'User-Agent':'',
}

接下来,定义请求页面函数。第一个参数是题目总页面数值,第二个参数是小题分页面数值。

def get_page(num,q_num):
	url = f'http://top.zhan.com/toefl/read/practicereview-{num}-13-0-{q_num}.html'
	try:
		response = requests.get(url, headers=headers)
		if response.status_code == 200:
			return response.text
	except requests.ConnectionError as e:
		print('Error', e.args)

请求搞定了,就要定义阅读文章获取函数,因为只想获取一遍,所以单独拿出来定义二没有放入循环。这里因为此网站的html解析时有一小部分驴唇不对马嘴,所以用了各种花样来获取相关值。

def get_article(text, q_num):
	doc = pq(text)
	if q_num == 0:
		article = {}
		article['来源'] = doc('a:contains(阅读真题)').text()
		article['题目'] = doc('.article_tit').text()

		#利用正则表达式替换br标签为---,代替换行!
		html = re.sub('<br/>', '---------------------------',text)
		doc_formatted = pq(html)
		article['article'] = doc_formatted('.article').text()
		return article
	else:
		return ''

接下来获取题目和选项。


def parse_page(text):
	doc = pq(text)
	info = {}
	info['问题'] = doc('.left.text').text()
	info['选项'] = doc('.ops.sec').text()
	return info

最后定义主程序,注意这里num的数值要根据网站不同套题的网址自行判断一下,缺少连贯性。而q这里,有的套题有14题有的10题,也需要自行调整。?

def main():
	for num in range(900,903):
		for q in range(0,14):
			try:
				text = get_page(num,q) 
				article = get_article(text, q)
				results = parse_page(text)
			except TypeError as e:
				print('---')
			else:
				
				print(f"\n{article}")
				for key, value in results.items():
					print(key, value)					


?题目整出来之后,还需要正则表达式来清洗一下,这里不做赘述啦。

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-10-11 17:28:47  更:2021-10-11 17:29:33 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/28 21:33:39-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计