Pyhacker 之 网站爬虫

00x1:

需要用到的模块如下:

import requests

import re

00x2:

网站爬虫分类:

1.搜索引擎 inurl:hackxc.cc

2.正则匹配href内的url

3.目录扫描爬虫探测

4.爬取js,分析js内的url,爬取隐藏接口

5.更多的py爬虫模块

00x3:

这里我们在前面实现了第一个功能,后面还有目录扫描,所以我们主要讲,第二个方法,其他都是大同小异

以www.hackxc.cc 为例

首先提取href内的url,遍历继续访问提取的url,反复如此

import urllib3
urllib3.disable_warnings()
req = requests.get(url,headers=headers,timeout=3,verify=False)

Verift 忽略不信任的证书,防止出错

href="http://www.hackxc.cc/?post=4" >

正则为:

href=”(.*?)”

没毛病,但是还有很多我们不想要的url

这里大家根据自己需求进行修改

比如,我只想要hackxc.cc 域名下的url,排除其他url


当然不止是href内的url,还有src标签下的url

这里仅是抛砖引玉,原理同上


有重复项

我们再来一个去重复

for url in urls:
    if 'hackxc.cc' in url:
        if url not in url_s:
            url_s.append(url)

已去除

当然这里还有css等文件,我们可以继续判断,剔除

也可以写个列表遍历判断剔除

简单处理一下 css:

00x4:

接下来我们来遍历这个url_s

继续爬行

print u"开始第一轮采集"
depth('http://www.hackxc.cc/?post=21')
print u"采集到了%s url"%len(url_s)

print u"开始执行第二次采集"
for url in url_s:
    depth(url)
    print url

print u"采集到了%s url"%len(url_s)

print u"采集完成:%s"%url_s

00x5:

为了更加智能化,我们修改刚才设置的域名的地方



def main():
    url =raw_input('\nurl:')
    #取域名部分
    r = url.split('.')
    who = r[-2]+"."+r[-1]
    if 'http' not in url:
        url = 'http://'+url
    depth(url,who)
    print u"开始第一轮采集,采集到了%s url"%len(url_s)

    print u"开始执行第二次采集"
    for url in url_s:
        depth(url,who)
        print url
    print u"采集到了%s url"%len(url_s)
    print u"采集完成:%s"%url_s

00x6:

循环深度爬行完善代码

def main():
    url =raw_input('\nurl:')
    #取域名部分
    r = url.split('.')
    who = r[-2]+"."+r[-1]
    if 'http' not in url:
        url = 'http://'+url
    depth(url,who)
    print u"\n采集到了%s url"%len(url_s)

    while True:
        print u"\n开始执行深度采集"
        for url in url_s:
            if 'http' not in url:
                url = 'http://' + url
            depth(url,who)
            print url
        if len(url_s)==len(url_s):
            break

现在我们来测试一下

首先我多加了两个url,他会爬去到/qc


在/qc,我又加了一个url,看看他能不能爬去到

看看他是不是可以一直深度爬取url


1.
先爬去tools.hackxc.cc
只有一个www.hackxc.cc

2.
接着从www.hackxc.cc
爬到tools.hackxc.cc/qc

3.
再从tools.hackxc.cc/qc
爬行到tools.hackxc.cc/test!!!!!


OK,一切正常

00x7:
下面我们让他自动保存即可

with open('Url_depth.txt','a+')as f:
    for url in url_s:
        f.write(url+"\n")


00x8:

完整代码:https://github.com/hackxc/Pyhacker/

本博客所有文章如无特别注明均为原创。作者:小陈复制或转载请以超链接形式注明转自 小陈's Blog - 致力关注于黑客技术、渗透测试、网络信息安全
原文地址《Pyhacker 之 网站爬虫
分享到:更多

相关推荐

发表评论

路人甲 表情
看不清楚?点图切换 Ctrl+Enter快速提交

网友评论(0)