玩玩python之爬取补天厂商列表
来源:互联网 发布:python 字符串变json 编辑:程序博客网 时间:2024/06/06 08:46
今天写了一个爬取补天厂商列表的爬虫,好方便进行渗透测试
直接贴出代码:
import requestsfrom lxml import etreeimport os#引入模块 以dom-tree的方式浏览网页,注意模块要pip install安装才能引入def Save_File(messageList):path = '补天厂商列表'if not os.path.exists(path):os.mkdir(path)#若不存在这个文件夹则要创建filepath = '厂商列表.txt'new_path = os.path.join(path, filepath)with open(new_path, 'a+', encoding = 'utf8') as f:#以追加的方法将列表写入.txt文件for x in messageList:f.write('%s %s\n'% (x[0][0], x[1][0]))#写入厂商名字和urldef load_message(page_message):dom = etree.HTML(page_message)i = 2LM_messageList = []while True:index = str(i)new_xpath = '//table/tr[' + index + ']/td[1]/a/text()'#使用正则匹配厂商名字title = dom.xpath(new_xpath)new_url_xpath = '//table/tr[' + index + ']/td[2]/text()'#使用正则匹配厂商URLurl = dom.xpath(new_url_xpath)if not url:url = ['URL丢失']#有的没有URL输出丢失if not title:breakLM_messageList.append((title, url))#将名称和URL都输入到列表当中i += 1return LM_messageListdef Spider(file_URL, last_message):print(file_URL)S_page_message = requests.get(file_URL).content.decode('utf8')#访问URL注意当前网页的编码S_messageList = load_message(S_page_message)a = S_messageList[0][0] == last_message[0]if not S_messageList[0][0] == last_message:#判断厂商和URL是否对应Save_File(S_messageList)return S_messageList[0][0], aif __name__ == '__main__':new_url = 'https://butian.360.cn/company/lists't = Spider(new_url, ('a', 'b'))i = 2while True:P_new_url = new_url +'/page/' + str(i)#循环到所有的paget = Spider(P_new_url, t)if t[1]:breaki += 1print('finish')#完成
到此补天厂商的列表都被抓取出来了
0 0
- 玩玩python之爬取补天厂商列表
- 玩玩python之两个猥琐的爬虫
- OA厂商资料列表
- USB 厂商ID 列表
- UVC 摄像头厂商列表
- [代码笔记] python之 玩玩 while 我的九九归一
- Python学习代码之买个宠物玩玩
- 我要玩玩Python
- 【python learing】玩玩pythonanywhere
- Python 之 列表小结
- python之list列表
- Python之列表数据结构
- python之列表操作
- Python数据类型之列表
- python之列表(list)
- python之列表list
- python基础之列表
- python之列表
- STM32 库函数编写程序
- autolayout 动态计算高度时 UILabel的preferredMaxLayoutWidth设置
- iOS线程之NSThread
- Android 多媒体控制 来电监听-耳机插拔监听-耳机按钮监听-MediaSession-MediaStyle
- 指针在函数中的应用
- 玩玩python之爬取补天厂商列表
- 在网站添加客服QQ,打开临时回话框(不用加为好友)
- vibe算法入侵检测,找轮廓,并且画轮廓
- Android中XML使用
- 如何使用ajax接受json返回的字符串数组,并动态异步显示到超链接的下面
- 利用Angular2的Observables实现交互控制
- 基于Redis的Bloomfilter去重(附Python代码)
- 【设计模式】《Head First 设计模式》读书笔记——单件模式
- 函数返回值