爬虫之非结构化数据爬取:字符串find,split应用

"""
不规则数据爬取
"""

import requests
from bs4 import BeautifulSoup
from fake_useragent import FakeUserAgent

Referer = 'https://www.ccdi.gov.cn/scdcn/'
url = 'https://www.ccdi.gov.cn/scdcn/zggb/djcf/'
# 1.设置headers随机代理和源页面
hd = {'User-Agent': FakeUserAgent().random, 'Referer': Referer}
# 2.向页面发起请求
r = requests.get(url, headers=hd)
# 3.转换成UTF-8编码格式
r.encoding = 'UTF-8'
# 4.通过BeautifulSoup将页面规整
soup = BeautifulSoup(r.text, 'html.parser')
li = soup.find_all('li')
list11 = []
list22 = []

for x in li:
    bt = x.a.string
    bt_new = bt.strip()  # bt_new 每一条数据 时间除外
    sj = x.span.string
    sj_new = sj.strip()  # 每一条数据的时间
    list11.append(bt_new)
    list22.append(sj_new)
# print(list11)
# print(list22)
info_all = []
index_now = 0
for i in list11:
    diqu = ['市', '省', '区', '司']
    names = ["孙", "胡", "李", "王", "曹", "宋", "张", "盛", "沈", "郝", "刘", "黄", "陈", "谢", "于"]
    index1_list = []
    index1_list2 = []
    index1 = ''
    address = ''  # 地区
    name = ''  # 名字
    zhiwei = ''  # 职位
    for j in diqu:  # 省份
        if i.find(diqu[0]) > -1:
            index1 = i.find(j)
            address = i[:index1 + 1]
        elif i.find(j) > -1:
            index1 = i.find(j)
            address = i[:index1 + 1]
        else:
            index1 = 0
    index1_list.append(index1)
    name2 = i.find('严')
    for n in names:  # 名字
        if i.find(n) > -1:
            index2 = i.find(n)
            name = i[index2:name2]
            index1_list2.append(index2)
    b = 0
    for a in index1_list:  # 职位
        zhiwei = i[a + 1:index1_list2[b]]
        b += 1
    chufen = i.split('违法')[-1]  # 处理结果
    info_all.append({
        '地区': address, '姓名': name, '职位': zhiwei, '处分': chufen, '时间': list22[index_now]
    })
    index_now += 1
print(info_all)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值