python脚本一键抓考试资料网答案
简介:本文介绍使用python抓取考试资料网的答案,将答案写到一个html里面,支持多url输入.解决考试资料网上面答案不能被复制的问题.
使用方法
- 找到你需要的题目,如http://www.ppkao.com/tiku/shiti/428976.html,点击
点击查看答案
得到一个新的链接http://www.ppkao.com/tiku/daan/428976/40da7044806ecf7eca6388e4cff72407. - 运行本脚本:
➜ ~ python /Users/yanzi/work/workspaces/python/ppkao/spider.py
.....请输入url地址,多个url以空格分开....
http://www.ppkao.com/tiku/daan/428976/40da7044806ecf7eca6388e4cff72407
-----------------That is ok---------------
注意,python版本为3.5,使用2.7会出错
源码如下
源码也可以直接看github
import sys,urllib.request, os
from bs4 import BeautifulSoup
# python /Users/yanzi/work/workspaces/python/spider.py http://www.baidu.com
# print(sys.argv[0])
# print(urllib.__file__)# 获取脚本文件的当前路径
def cur_file_dir():path1 = sys.path[0]if os.path.isdir(path1):return path1elif os.path.isfile(path1):return os.path.dirname(path1)def get_source_url():url = sys.argv[1]if 1:return urlelse:return urldef get_template_body():# 加载模版path = cur_file_dir() + "/template.html"soup2 = BeautifulSoup(open(path), "html.parser")body = soup2.bodyreturn (soup2, body)def get_answer(url):content = urllib.request.urlopen(url).read()
# fp = open("/Users/yanzi/Desktop/aaa.html", "wb")
# fp.write(content)
# fp.close()soup = BeautifulSoup(content, "html.parser")
# print(soup.title)answer1 = soup.find('div', class_='single-siti clearfix')answer1.i.extract()answer2 = soup.find('div', class_='tm-bottom')answer2.a.extract()answer3 = soup.find('div', class_='analysis clearfix')return (answer1, answer2, answer3)"""
def get_url_from_browser():path = cur_file_dir()# dr = webdriver.Chrome(executable_path=path + '/chromedriver')chromedriver = '/Applications/Google Chrome.app/Contents/MacOS' + '/chromedriver'os.environ["webdriver.chrome.driver"] = chromedriverdr = webdriver.Chrome(chromedriver)dr.get("http://www.163.com")url = dr.current_urlprint(url)def get_url_from_browser2():path = cur_file_dir()dr = webdriver.Firefox()# dr.get("http://www.163.com")url = dr.current_urlprint(url)# url = dr.open_new_tab("http:\\www.163.com")"""# url=get_source_url()
(soup2, body) = get_template_body();
url = input(".....请输入url地址,多个url以空格分开....\n")
# print(url)
urls = url.split(" ")
for temp_url in urls:(a1, a2, a3) = get_answer(temp_url)body.append(a1)body.append(a2)body.append(a3)tt = BeautifulSoup("<br/>", "html.parser")body.append(tt)#save to answer.html
fp = open("/Users/yanzi/Desktop/answer.html", "w")
fp.write(soup2.prettify())
fp.close()
print('-----------------That is ok---------------')
备注
1.本来我的构想是python直接抓取当前浏览器打开的符合条件的网址,然后把答案爬出来。但是经过实验,无法直接获得到浏览器当前地址。它可以打开一个新的浏览器shell,但是与原来打开的不同.所以避免不了要手动把浏览器的地址粘贴过来。
2.python发起一个网络请求
content = urllib.request.urlopen(url).read()
soup = BeautifulSoup(content, "html.parser")
通过urllib发起一个请求,通过read得到内容,然后将内容传进去,实例化一个BeautifulSoup对象,就着就可以用soup.title
或soup.body
得到对应字段,然后用answer1 = soup.find('div', class_='single-siti clearfix')
find找到class对应的内容,return()可以返回多个字段。
3.open直接打开本地文件
soup2 = BeautifulSoup(open(path), "html.parser")
4.python的for循环
urls = url.split(" ")
for temp_url in urls:
5.python保存一个文件
fp = open("/Users/yanzi/Desktop/answer.html", "w")
fp.write(soup2.prettify())
fp.close()
整体都比较简单,记录于斯.如果有需要也可以把url来源直接放到数据库或文本里,然后批量处理。
参考链接
- Beautiful Soup 4.2.0 文档
python脚本一键抓考试资料网答案相关推荐
- 003.[python学习] 简单抓取豆瓣网电影信息程序
003.[python学习] 简单抓取豆瓣网电影信息程序 声明:本程序仅用于学习爬网页数据,不可用于其它用途. 本程序仍有很多不足之处,请读者不吝赐教. 依赖:本程序依赖BeautifulSoup4和 ...
- 教你写个简单好用的Python脚本一键自动整理文件非常适合办公用~
导语 小编以前经常把下载的东西放在桌面或者"下载"文件夹中,使用后再也没管它,久而久之文件夹就变得乱七八糟,再整理的时候非常痛苦,巴不得有一个自动化的工具帮我归类文档. 不知道你是 ...
- 用Python脚本一键自动整理文件,轻松办公
嗨嗨,大家下午好~ 我是小圆 因为自己对于电脑上的文件不怎么爱整理,经常把下载好的东西就随意的放在桌面上或者"下载"文件夹中,就使用过后再也没去管它了.久而久之,文件夹就变得乱七八 ...
- 利用python脚本一键为MySQL插入万条数据
运行环境:Windows 10 技术栈:python3,MySQL8.x 编写目的 MySQL是我们研究开发时最常用的关系型数据库.当需要向MySQL数据库中插入大量数据时,一次一条地插入显然不得劲. ...
- 阅读分析下列html,阅读下列说明和 HTML 文本,分析其中嵌入的 JavaScript. 脚本..._考试资料网...
阅读下列说明和 HTML 文本,分析其中嵌入的 JavaScript. 脚本,将应填(n)处的语句写在对应栏内. [说明] 登录Web页时,在Web页中显示"welcome to my ho ...
- 阅读分析下列html,阅读下列说明和HTML文本,分析其中嵌入的JavaScdpt脚本, [说明]..._考试资料网...
阅读下列说明和HTML文本,分析其中嵌入的JavaScdpt脚本, [说明] 在表单的多行文本域中显示打字效果,即先显示一个光标,再显示一个字,然后循环显不, [HTML 文本] <html&g ...
- 替代上学吧考试资料网的搜题找答案网站
问答类大部分平台现在都要钱,推荐一个查询的方法以及几个免费的平台供参考. 搜题的替代方法 网上很多的问答平台会互相采集数据,因此,在问答库上学吧搜到的要钱的问题,可以吧题干放到百度搜索下,匹配找下免费 ...
- python怎么批量下载年报_如何用Python写一个抓取新浪财经网指定企业年报的脚本...
匿名用户 1级 2017-08-02 回答 1.先得到需要的上市公司的股票代码和名字. 2.分析下载链接地址.以康达尔为例,年报地址,下载链接 的页面 ,链接末尾的8个数字前6个是股票代码,后两位01 ...
- Python脚本一键找出哪些微信好友删了你(附源码)
查看被删的微信好友 原理就是新建群组,如果加不进来就是被删好友了(不要在群组里讲话,别人是看不见的) 用的是微信网页版的接口 查询结果可能会引起一些心理上的不适,请小心使用-(逃 还有些小问题: 结果 ...
最新文章
- 习惯了收听虾米酷狗网易云音乐的你,好歹知道一下音乐推荐到底是咋回事吧
- Java模板引擎-FreeMarker
- Django学习 -- 第一个项目(Hello World)
- java从键盘输入数据斐波那契数_从键盘输入一个正整数n,打印出斐波那契数列的前n个元素...
- Hadoop 文件命令
- Hadoop笔记整理(三):Zookeeper
- 远程体验Linux Lite
- web开发python 人工智能_【图片】python可以做什么———Web开发,数据分析,人工智能和脚本开发【python学习吧】_百度贴吧...
- 上班一族“黑话”辞典大曝光
- docker-compose文件详解
- 情感分析技术:让智能客服更懂人类情感
- Python+Opencv识别视频统计人数
- sram是靠什么存储信息
- 菜鸟Java开发人员的找工作之旅(1)
- 神经网络学习笔记(一) RBF径向基函数神经网络
- 喧喧发布 2.5.1 版本,支持移动版和桌面端同时登录
- 以太网芯片MAC和PHY
- 国产系统下的DES,SM4工具,银河麒麟V10桌面系统,飞腾芯片
- ASP.NET CORE WebAPI 中 Route 属性配置
- Linux命令·rmdir