黑客工具_Python多线程爬虫抓取扫描器

简介:

代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
# -*- coding:utf-8 -*-
__author__ = "iplaypython.com"
  
import  os
import  urllib2
import  threading
import  Queue
import  time
import  random
  
=  Queue.Queue()  # Queue产生一个队列,有3种类型队列 默认用 FIFO队列
threading_num  =  5  # 开启5个线程
  
# 扫描本地IP或域名
domain_name  =  "http://127.0.0.1"
# 百度蜘蛛UA
Baidu_spider  =  "Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)"
# 不需要的文件过滤列表
exclude_list  =  [ '.jpg' '.gif' '.css' '.png' '.js' '.scss'
  
proxy_list  =  # 代理服务器,可能已经失效,换为自己的
     { 'http' '117.28.254.130:8080' },
     { 'http' '118.144.177.254:3128' },
     { 'http' '113.118.211.152:9797' },
]
  
# 打开字典文件,开始过滤不需要的文件路径
with  open ( "/home/leo/app_txt/wordpress.txt"  "r" ) as lines:
     for  line  in  lines:
         line  =  line.rstrip()
         if  os.path.splitext(line)[ 1 not  in  exclude_list:
             q.put(line)  #将line传入到队列 q 中
  
# 扫描器方法
def  crawler():
     while  not  q.empty():  # 循环
         path  =  q.get() 将line从队列 q 中取出来
  
         url  =  "%s%s"  %  (domain_name, path)  # 组合url地址,用于下一步提交
  
         random_proxy  =  random.choice(proxy_list)  # 随机使用一个代理服务器
         proxy_support  =  urllib2.ProxyHandler(random_proxy)
         opener  =  urllib2.build_opener(proxy_support)
         urllib2.install_opener(opener)
  
         headers  =  {} 
         headers[ 'User-Agent' =  Baidu_spider  # 蜘蛛的头部信息
         # 玩蛇网 www.iplaypython.com
  
         request  =  urllib2.Request(url, headers = headers) 
  
         try :
             response  =  urllib2.urlopen(request)
             content  =  response.read()
  
             if  len (content):  # 内容不为空的情况下返回状态码、路径
                 print  "Status [%s]  - path: %s"  %  (response.code, path)
  
             response.close()
             time.sleep( 1 # 休息一会儿,防止速度过快连接数过大被封掉IP
         except  urllib2.HTTPError as e:
             # print e.code, path
             pass  # 异常处理,先暂时pass掉
  
if  __name__  = =  '__main__' :
     # 创建多线程并指明函数的入口为crawler,以后还可以传参进去
     for  in  range (threading_num): 
         =  threading.Thread(target = crawler)
         t.start()


    # 上面代码,我们一共导入了6个模块都是接下来需要使用的功能模块,

    # os作用是对我们不需要扫描的后缀名文件进行筛选,     

    # urllib2负责抓取,而threading就是我们的Python多线程模块,     

    # 这次还需要用到Queue这个保证线程安全的队列模块,     

    # 其它两个比较简单,一个是随机模块random,另一个时间模块time

转载地址:http://www.iplaypython.com/crawler/multithreading-crawler-scanner.html





      本文转自027ryan  51CTO博客,原文链接:http://blog.51cto.com/ucode/1871010,如需转载请自行联系原作者






相关文章
|
4天前
|
数据采集 负载均衡 安全
LeetCode刷题 多线程编程九则 | 1188. 设计有限阻塞队列 1242. 多线程网页爬虫 1279. 红绿灯路口
本文提供了多个多线程编程问题的解决方案,包括设计有限阻塞队列、多线程网页爬虫、红绿灯路口等,每个问题都给出了至少一种实现方法,涵盖了互斥锁、条件变量、信号量等线程同步机制的使用。
LeetCode刷题 多线程编程九则 | 1188. 设计有限阻塞队列 1242. 多线程网页爬虫 1279. 红绿灯路口
|
3天前
|
测试技术 Python
Python MagicMock: Mock 变量的强大工具
Python MagicMock: Mock 变量的强大工具
22 8
|
8天前
|
数据采集 存储 JavaScript
构建您的第一个Python网络爬虫:抓取、解析与存储数据
【9月更文挑战第24天】在数字时代,数据是新的金矿。本文将引导您使用Python编写一个简单的网络爬虫,从互联网上自动抓取信息。我们将介绍如何使用requests库获取网页内容,BeautifulSoup进行HTML解析,以及如何将数据存储到文件或数据库中。无论您是数据分析师、研究人员还是对编程感兴趣的新手,这篇文章都将为您提供一个实用的入门指南。拿起键盘,让我们开始挖掘互联网的宝藏吧!
|
8天前
|
Python
python第三方库-字符串编码工具 chardet 的使用(python3经典编程案例)
这篇文章介绍了如何使用Python的第三方库chardet来检测字符串的编码类型,包括ASCII、GBK、UTF-8和日文编码的检测示例。
34 6
|
6天前
|
Python
5-5|python开启多线程入口必须在main,从python线程(而不是main线程)启动pyQt线程有什么坏处?...
5-5|python开启多线程入口必须在main,从python线程(而不是main线程)启动pyQt线程有什么坏处?...
|
15天前
|
数据采集 存储 JSON
从零到一构建网络爬虫帝国:HTTP协议+Python requests库深度解析
在网络数据的海洋中,网络爬虫遵循HTTP协议,穿梭于互联网各处,收集宝贵信息。本文将从零开始,使用Python的requests库,深入解析HTTP协议,助你构建自己的网络爬虫帝国。首先介绍HTTP协议基础,包括请求与响应结构;然后详细介绍requests库的安装与使用,演示如何发送GET和POST请求并处理响应;最后概述爬虫构建流程及挑战,帮助你逐步掌握核心技术,畅游数据海洋。
47 3
|
15天前
|
数据采集 API 开发者
🚀告别网络爬虫小白!urllib与requests联手,Python网络请求实战全攻略
在网络的广阔世界里,Python凭借其简洁的语法和强大的库支持,成为开发网络爬虫的首选语言。本文将通过实战案例,带你探索urllib和requests两大神器的魅力。urllib作为Python内置库,虽API稍显繁琐,但有助于理解HTTP请求本质;requests则简化了请求流程,使开发者更专注于业务逻辑。从基本的网页内容抓取到处理Cookies与Session,我们将逐一剖析,助你从爬虫新手成长为高手。
39 1
|
18天前
|
机器学习/深度学习 算法 开发工具
Python Web开发工具
Python Web开发工具
17 3
|
24天前
|
数据采集 机器学习/深度学习 搜索推荐
Python爬虫技术基础与应用场景详解
本文介绍了爬虫技术的基本概念、原理及应用场景,包括数据收集、价格监测、竞品分析和搜索引擎优化等。通过一个实战案例展示了如何使用Python爬取电商网站的商品信息。强调了在使用爬虫技术时需遵守法律法规和道德规范,确保数据抓取的合法性和合规性。
|
3天前
|
数据采集 Linux 调度
Python之多线程与多进程
Python之多线程与多进程
10 0
下一篇
无影云桌面