使用selenium爬取某出试卷的网站

news/2024/5/15 0:07:43/文章来源:https://blog.csdn.net/qq_26877377/article/details/79630338
from selenium import webdriver
import pymongo
import json
import time
import re
# 使用终极武器了.


# 修改头文件,防止被识别为爬虫
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities


class Zujuan(object):
    def __init__(self):
        self.list = ["question_id", "question_type", "question_channel_type", "question_status", "chid", "xd",
                     "parent_id",
                     "is_objective", "difficult_index", "master_level", "exam_type", "evaluated", "region_ids",
                     "grade_id",
                     "question_source", "mode", "kid_num", "paperid", "save_num", "oldqid", "paper", "list",
                     "extra_file",
                     "question_text", "options", "knowledge", "category", "is_collect", "done", "myanswer", "score",
                     "sort",
                     "sort2", "is_use"]


        self.client = pymongo.MongoClient("localhost", 27017)
        # 获得数据库test1
        self.db = self.client.zujuan
        # 获得集合stu
        self.stu = self.db.yingyu7
        # 调用环境变量指定的PhantomJS浏览器创建浏览器对象
        dcap = dict(DesiredCapabilities.PHANTOMJS)
        dcap["phantomjs.page.settings.userAgent"] = (
            "Mozilla/5.0 (Linux; Android 5.1.1; Nexus 6 Build/LYZ28E) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.23 Mobile Safari/537.36")
        driver = webdriver.PhantomJS(desired_capabilities=dcap)
        # driver = webdriver.PhantomJS()
        # /home/python/Desktop/chromdriver
        # driver = webdriver.Chrome(executable_path='/home/python/Desktop/chromdriver/chromedriver')
        driver.get("http://www.zujuan.com/question?chid=4&xd=2&tree_type=knowledge")
        time.sleep(2)
        # driver.save_screenshot("页面.png")


        # 普通按键使用时,直接使用sendkeys(theKeys)就可以,如按下enter键:


        # action.sendKeys(Keys.ENTER).perform();
        driver.get("防纠纷屏蔽")
        time.sleep(0.5)
        window_1 = driver.current_window_handle
        js = 'window.open();'
        driver.execute_script(js)


        # print(driver.page_source)
        windows = driver.window_handles


        for handle in windows:


            if handle != window_1:
                driver.switch_to.window(handle)
                self.run(driver)


    def run(self, driver):
        for i in range(1, 3782):
            driver.get(
                ""防纠纷屏蔽"" + str(
                    i) + "&_=1521543426225")


            # driver.save_screenshot("页面2.png")


            data = driver.page_source
            # print(data)
            data = re.match(r""".*?({"data".*})</""", data).group(1)
            data = json.loads(data)
            # print(data)
            self.crawl(data)


    def crawl(self, data):
        try:
            result = data["data"][0]["questions"]
        except:
            return
        print(result)


        for data in result:
            dict_ = dict()
            for field in self.list:
                if field in data:
                    dict_[field] = data[field]
            # print(dict_)


            # 添加文档
            self.stu.update({'question_id': dict_['question_id']}, dict(dict_), True)


def main():
    zujuan = Zujuan()
    # zujuan.run()


if __name__ == '__main__':

    main()




本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_844953.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用python3登陆12306网站

一、一些用到的技术1.1解析验证码&#xff08;联众-收费&#xff0c;两分钱一个&#xff09;验证码识别设计机器学习&#xff0c;没有耗费时间去实现&#xff0c;所以采用了第三方&#xff08;联众&#xff09;的在线打码&#xff0c;注册充值便可使用&#xff0c;识别率挺高的…

如何突破网站对selenium的屏蔽

使用selenium模拟浏览器进行数据抓取无疑是当下最通用的数据采集方案&#xff0c;它通吃各种数据加载方式&#xff0c;能够绕过客户JS加密&#xff0c;绕过爬虫检测&#xff0c;绕过签名机制。它的应用&#xff0c;使得许多网站的反采集策略形同虚设。由于selenium不会在HTTP请…

免费图床网站推荐

免费图床网站推荐 聚合图床-推荐使用 官网地址&#xff1a;https://www.superbed.cn 简介&#xff1a;将图片分发到多处备份&#xff0c;借助其本身的CDN加速功能&#xff0c;节省服务器流量&#xff0c;并且不用担心图片被删除&#xff0c;即便其中某几个图床上的图片被删除…

新手上路--分享20个无版权的高清图库素材网站

今天这组网站比较有特色&#xff0c;有专门分享美食图片的&#xff0c;有专门分享复古图片的&#xff0c;各领风骚&#xff0c;质量都是一顶一的棒。下面就是20个无版权的高清无码图库站&#xff0c;记得收藏啊。Compfight Compfight 是一个图片搜索引擎&#xff0c;帮你快速找…

12佳精美的国外 Flash 网站模板下载(附源文件)

本文收集了12佳精美的国外Flash网站模板&#xff0c;附带源文件下载。Flash网站页面美观&#xff0c;互动性强&#xff0c;可以声形并茂&#xff0c;实现普通的HTML网站不能制造出的质感和动作&#xff0c;特别是动态的视觉特果&#xff0c;能给人以震撼视听的效应。下面这些免…

JiaThis社区分享按钮的使用,提升网站访问流量

JiaThis社区分享按钮的使用&#xff0c;提升网站访问流量 分享按钮样式&#xff1a; 在你页面上所需要的位置加上代码&#xff1a; <!-- JiaThis Button BEGIN --> <span class"jiathis_style"><span class"jiathis_txt">分享到&#…

ckks方案优化最好的_百度SEO网站整体优化方案 - 蜘蛛池博客

原出处&#xff1a;蜘蛛池博客原文链接&#xff1a;百度SEO网站整体优化方案 - 蜘蛛池博客正常情况下单独优化网站的某一个点无法让网站发挥出最大的seo效果&#xff0c;通过对网站进行系统化诊断&#xff0c;以详尽的实用的网站seo整体优化方案来指导我们对网站进行优化&#…

Flink实战之网站日志ETL案例【含代码】

问题导读1.怎样对字段进行大区转换&#xff1f;2.怎样拆分打平大JSON?3.怎样把不同类型的日志数据分别进行存储&#xff1f;应用场景&#xff1a;数据清洗【实时ETL】数据报表1、数据清洗【实时ETL】1.1、需求分析针对算法产生的日志数据进行清洗拆分算法产生的日志数据是嵌套…

【python爬虫】实现爬虫包含动态页面的“南京市公共资源交易中心”“南京公共采购信息网”等网站的爬虫,并且保存本地的“招标信息汇总.csv”

一、实现爬虫包含动态页面的“南京市公共资源交易中心”“南京公共采购信息网”等网站的爬虫&#xff0c;并且保存本地的“招标信息汇总.csv”。 效果展示&#xff1a; &#xff08;1&#xff09;界面&#xff1a; 打包成了exe文件&#xff0c;点击即可使用&#xff01;&#…

Python实现Office自动化办公(实现Python对word基本操作、对excel基本操作、在word中插入表格、word中插入网站爬虫取图)

Python实现Office办公自动化&#xff0c;以商务流程为例一、 Pycharm 2018&#xff08;Mac版&#xff09;的下载二、Welcome to PyCharm三、使用DocxTemplate功能模块&#xff0c;实现python对Office Word文档进行基本操作&#xff0c;批量修改模板。四、实现Python对Office Ex…

jupyter网站的使用以及常见linux下的简单的命令

python下安装jupyter 常识&#xff1a;linux下查看计算机的ip代码是&#xff1a;ifconfig&#xff1b;ping IP; 用户名查看&#xff1a;uname; 文件传输&#xff1a;sftp 用户名对方 IP; SSH链接计算机的命令&#xff1a;ssh yuan对方IP&#xff0c;接下来再输入对方计…

网站服务器绑定多个ip,一台服务器绑定多个ip

一台服务器绑定多个ip 内容精选换一换虚拟IP(Virtual IP Address&#xff0c;简称VIP)是一个未分配给真实弹性云服务器网卡的IP地址。弹性云服务器除了拥有私有IP地址外&#xff0c;还可以拥有虚拟IP地址&#xff0c;用户可以通过其中任意一个IP(私有IP/虚拟IP)访问此弹性云服务…

服务器网站卡住不动,网站打不开或网页只打开一半卡住不动?是dns的问题

当你打开电脑准备上一些网站浏览下网页、查查资料时&#xff0c;却遇到网站打不开或者页面只打开一半的时候便卡在那里不动的情况&#xff1f;并且浏览器一直显示页面在加载&#xff0c;那个刷新图标也一直在旋转。这会是什么原因呢&#xff1f;我想有经验的用户一定知道这很可…

快盘做网站服务器,快盘云服务器地址

快盘云服务器地址 内容精选换一换为了避免不必要的费用产生&#xff0c;完成本示例体验后&#xff0c;可释放以下资源。资源释放后无法恢复&#xff0c;请谨慎操作。项目是使用DevCloud各服务的基础&#xff0c;删除项目可将该项目中所有数据(包括工作项、文档、代码仓库、软件…

mysql8.0登录不上去怎么回事_网站建设中百度快照劫持是什么?劫持百度快照是怎么回事?...

网站建设中百度快照劫持是什么&#xff1f;劫持百度快照是怎么回事&#xff1f;SEO行业中有两种常见的优化技术&#xff1a;一种是白帽SEO&#xff0c;第二种是黑帽SEO&#xff0c;这里所说的黑帽实际上是利用作弊手段或以牺牲他人为代价来提高自己的网站排名和访问量。劫持百度…

wordpress php缓存,wordpress使用memcached缓存来加速网站

wordpress使用memcached缓存来加速网站实测效果很好&#xff0c;网站速度比较慢的可以尝试下。启用memcached缓存之前&#xff0c;首先在服务器安装memcached&#xff0c;并且在网站所使用的PHP里安装memcached扩展。如何在服务器安装memcached应该不用多说了吧宝塔上点一下就安…

wetool个人版_免费版wetool管理工具-网站

免费版wetool管理工具-网站 加群好友主动或被动添加群成员&#xff0c;个号&社群双保险&#xff0c;有效防止用户流失 wetool企业版(管理软件)是一款可以对进行管理的管理工具,下载使用这款wetool管理软件可以让您对运营或者好友,功能管理更加方便,马上下载wetool吧。 扫码…

网站服务器与客户端通信所使用的协议,服务器如何与客户端通信协议

服务器如何与客户端通信协议 内容精选换一换通过文件传输客户端登录云堡垒机纳管资源&#xff0c;在不改变用户原来使用客户端习惯的前提下&#xff0c;对授权云主机资源进行远程文件传输管理。用户在主机上执行的所有操作&#xff0c;被云堡垒机记录并生成审计数据。本小节主要…

从0开始Go语言,用Golang搭建网站-记录

最简单的web服务 package mainimport ("fmt""net/http" )func myWeb(w http.ResponseWriter,r *http.Request){fmt.Fprintf(w,"这是一个开始") }func main(){http.HandleFunc("/",myWeb)fmt.Println("服务器即将开启&#xff0c…

ie8支持php吗,网站不被IE8兼容的解决办法

IE8出来以后造成很多网站出现不兼容的现象。在IE8中特别是flash常常出现错误显示不全的现象。下面我给大家介绍两种非常简单的方法来解决这个IE8不兼容的问题。只需要添加几行代码就行非常的方便。工具/原料• 程序代码&#xff1a;• 空间支持iis的情况下就直接加在iis里面方法…