这一段时间压力有点大 看了一些web 学了一些基本的sql注入 文件上传还有抓包 然后 就被安排了 让搞Wx 这谁顶得住啊
不过还是先看了看 python 其中 感觉python 爬虫 挺好玩的
但是 怎么说呢 爬虫 现在看起来 应该也算是web的一部分了 个人 感觉web安全 也应该学一下 爬虫
但是现在web安全还没有怎么会 所以玩玩web 看看python 挺好玩的 没事感觉可以写一些好玩的东西·~~~~~
然后 开始今天的正题
URL收集
参考资料 ichunqiu Python安全工具开发应用
用到的库
import requests
import sys
import threading
from bs4 import BeautifulSoup as bs
import re
import time
语言 python 3.7
然后 这里 的url 收集 是指 假如 想搜索一个关键字 把百度 提供的 所有网址 都取出来 就可以了
这里不得不提一个强大的库
BeautifulSoup 那是真的好用
假如 想得到 td标签的 1 5 8 次序
那么 只需要
soup=bs(r.content,'lxml')
urlstring=soup.find_all(name='td')
for i in [1,5,8]:
urlstring[i].string
即刻
就可以了 那是真的好用~~~~~
然后这里没有用到多线程 原因其实也很简单 多线程 处理比较复杂 先不用 多线程了
网址标签确定的地方也很好看的出来
然后我们再看 url
https://www.baidu.com/s?wd=Python&pn=10
wd 代表的就是我们的关键字 而 0 10 20 代表页数
然后 然后我们再次确定一次 返回200 的正常码 我们再打印
#!/user/bin/env python
# -*- coding: utf-8 -*-
import requests
import sys
import threading
from bs4 import BeautifulSoup as bs
import re
import time
header={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:65.0) Gecko/20100101 Firefox/65.0'}
def test(word):
for i in range(0,760,10):#每次 循环十次就够了
time.sleep(5)
url=('https://www.baidu.com/s?wd=%s&pn=%s')%(word,str(i))
print (i)
r=requests.get(url=url,headers=header)
soup=bs(r.content,'lxml')
urls=soup.find_all(name='a',attrs={'data-click':re.compile(('.')),'class':None})
for url in urls:
time.sleep(5)
r_get=requests.get(url=url['href'],headers=header,timeout=8)
if r_get.status_code==200:
print (url['href'])
if __name__=='__main__':
if len(sys.argv)!=2:
print ('Enter:%s word',sys.argv[0])
sys.exit(-1)
else:
test(sys.argv[1])
别问我 为什么时间 设置的那么长 自己 可以设置的短一点 我后面 被限制 了
所以 ~~~~~