使用selenium + Chrome爬取某网站乌云公开漏洞文章并保存为pdf文件

目的:使用selenium + Chrome爬取某网站指定类型的乌云公开漏洞文章,即在win10终端输入漏洞类型(如未授权),则爬取所有该类型的漏洞文章,并把每个分页的数字作为文件夹名,来保存该分页下面的所有的漏洞文章。

总结:本例只是能简单的爬取某一类型漏洞的所有文章,但不能爬取多个类型漏洞的所有文章,有时可能会有一些小bug导致没爬取完就崩溃,需要手工修改进而重新爬。其它问题解决看注释。

  1. 关于python代码里面出现中文在windows里面的处理,还没完全掌握。可参考Python for Windows 中文编码问题汇总
  2. 遇到的超时问题TimeoutException: Message: timeout 还没解决
  3. 本例代码只是输入漏洞的指定类型,才可以爬取其所有文章。但如想一块爬取漏洞的类型如 未授权、sql等,导入paramunittest也没搞定

代码如下:

#!/usr/bin/env python
# -*- coding:utf-8 -*-
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import unittest
import time
from lxml import etree
import urllib2
import pdfkit
import random
import os
import shutil
import urllib
# import chardet
import paramunittest

# @paramunittest.parametrized(
#     {'user':'编辑器漏洞','result':'true'},
    # {'user':'未授权','result':'true'},
# )

class wooyunSelenium(unittest.TestCase):
# class TestDemo(unittest.TestCase):
    '''
    利用unittest模块的测试类来解决js分页,模拟点击下一页。

    '''

    def setUp(self):
    # def setParameters(self, user, result):
        ''' 
        初始化方法(固定写法),为测试准备环境。

        '''
        # self.user = user
        # self.result = result

        # 创建谷歌浏览器对象。
        self.driver = webdriver.Chrome()

        # 创建无头浏览器对象,实测速度比谷歌浏览器的要快点,但不是很多,没有浏览器窗口界面。
        # self.driver = webdriver.PhantomJS()

        # input输入的提示语如果是字符串,要加双引号,如果是数字,直接输入(python2),如果是raw_input函数,则不管输入的是什么,全部返回的类型为字符串类型。
        # vname = input('请输入要查询的漏洞类型:'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值