@TOC
selenium框架爬取p2p问题平台信息
# -*- coding: utf-8 -*-
"""
Created on Tue Dec 10 07:03:57 2019
@author: heart
"""
import random
from selenium import webdriver
import re
import time
import os
import warnings
import pymongo
warnings.filterwarnings('ignore')
brower = webdriver.Chrome()
#手动输入ui的网址,不然会被反爬
def get_data(ui,table):
brower.get(ui)
p=0
while p<=295:
brower.find_element_by_class_name('load').click()
sleeptime = random.randint(3,5)
time.sleep(sleeptime)
print('加载第%i次,休息时间:sleep.....%i' %(p,sleeptime))
p += 1
#第一步先加载完所有页面
infos = brower.find_elements_by_class_name('tr-click')
#列表存储
lst = []
for li in infos:
dic = {}
dic['发生日期'] = li.find_element_by_class_name('col1').text
dic['平台名称'] = li.find_element_by_class_name('a-click').text
dic['所在地区'] = li.find_element_by_class_name('col3').text
dic['上线日期'] = li.find_element_by_class_name('col4').text
lst.append(dic)
table.insert_one(dic)
#实时存储mongodb。如不需要的话,可以注释掉,并删除table参数即可
print('抓取数据%i条' % (len(lst)))
#第二步,循环抓取关键信息
return lst
if __name__ == '__main__':
ui = 'https://www.p2peye.com/shuju/wtpt/'
myclient = pymongo.MongoClient('mongodb://localhost:27017/')
db = myclient['网贷天眼']
datatable = db['p2p平台数据']
get_data(ui,datatable)
#获取数据
第一次实践成功。。。
经过一次修改。
加载效果如下图。。。函数中的间隔时间是一定需要的,不然铁定被识别反爬。