网址采集
优采云 发布时间: 2020-08-08 05:45这段时间一直承受着很大的压力. 我读了一些网络,学习了一些基本的SQL注入,文件上传和数据包捕获,然后进行了排列,以便Wx可以承受它.
但是让我们先来看一下python. 我觉得python采集器很有趣
但是我怎么说现在应该将爬虫视为网络的一部分. 我个人认为网络很安全,应该学习爬虫.
但是,现在网络安全性还不够好,因此与网络一起玩并研究python很有趣. 可以写一些有趣的东西. ~~~~~
然后开始今天的话题
URL采集
参考资料ichunqiuPython安全工具的开发和应用
使用的图书馆
导入请求
导入系统
导入线程
从bs4导入BeautifulSoup作为bs
重新导入
导入时间
语言python 3.7
然后,这里的url集合意味着如果要搜索关键字,请删除百度提供的所有URL.
我不得不在这里提到一个功能强大的库
BeautifulSoup真的很容易使用
如果要获取1 5 8顺序的td标签
然后只需要
soup = bs(r.content,'lxml')
urlstring = soup.find_all(name ='td')
对于[1,5,8]中的i:
urlstring [i] .string
立即
就是这样,它真的很容易使用~~~~~
然后,此处不使用多线程. 原因实际上很简单. 多线程更为复杂,因此我不需要多线程.
确定URL标签的地方也很漂亮
然后我们将查看网址
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])
别问我为什么时间设置得这么长,您可以将时间设置得更短,以后我会受到限制
所以~~~~~