爬取某单位网页上发布的文书信息

因为听说某单位的网页反爬机制弱,所以我作死爬了该单位近期发布的文书信息,学习相关案例并对自己以示警戒。

首先打开该网页对应的html代码分析想要得到的信息存在哪里。

经过分析,得知这些位置是存放文书对应表项的地方。然后找页码链接,先爬下6页来学习学习。

 得到这两个位置之后,就可以写代码了,下面附代码:

from bs4 import BeautifulSoup
import requests
import urllib
import os
import re
import  time
import lxml

url = "http://www.*****.gov.cn/wenshu.html"#思来想去这个网址还是不能给,知道是.gov就行了

headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36"
}

def get_Content(html, num):
    htmldata1 = html.find_all(name='li', attrs={'class': 'list_tit'})
    htmldata2 = html.find_all(name='div', attrs={'class': 'ah'})
    htmldata3 = html.find_all(name='div', attrs={'class': 'date'})
    data_One = []
    data_Two = []
    data_Three = []
    data_End = []
    for i in htmldata1:
        data = i.get_text()
        data_One.append(data)
        # print(data)
    for i in htmldata2:
        data = i.get_text()
        data_Two.append(data)
        # print(data)
    for i in htmldata3:
        data = i.get_text()
        data_Three.append(data)
        # print(data)
    i = 0
    for d in data_One:
        data_End.append(data_One[i] + " " + data_Two[i] + " " + data_Three[i] + '\n')
        i += 1
    # os.mkdir('d:\Paper')
    # os.mknod('d:\Paper\Page1.txt')
    fp = open("d:\Paper\Page"+ str(num) + ".txt", 'w')
    fp.writelines(data_End)
    fp.close()

def get_Page(html):
    pos = html.find(name= 'li', attrs={'class':'next'}).find('a')
    link = pos['href']
    return link

response = requests.get(url, headers=headers)
html = BeautifulSoup(response.content, 'lxml')
get_Content(html, 0)
for i in range(1, 6):
    link = 'http://www.*****.gov.cn' + get_Page(html)
    response = requests.get(link, headers=headers)
    html = BeautifulSoup(response.content, 'lxml')
    link = 'http://www.*****.gov.cn' + get_Page(html)
    get_Content(html,i)

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值