python爬取五级地址

【新手,代码水平请见谅,后期会优化】

数据网页链接:http://www.stats.gov.cn/tjsj/tjbz/tjyqhdmhcxhfdm/2019/

import urllib.request
from bs4 import BeautifulSoup
import time
import random


def url_open( url ):
    formate = {
        'User - Agent': 'Mozilla / 5.0(WindowsNT10.0;WOW64) AppleWebKit / 537.36(KHTML, likeGecko) Chrome / 65.0.3325.181Safari / 537.36'
     }
    data = urllib.parse.urlencode(formate).encode(encoding='UTF8')
    req = urllib.request.Request(url=url, data=data,method='POST')
    response = urllib.request.urlopen(req)
    html = response.read().decode('gbk')
    return html


def bs(html, url):
    # 从北京市开始
    i = 0
    soup = BeautifulSoup(html, "html.parser")
    # 获取省
    for li in soup.find_all('tr', class_="provincetr"):
        for a in li:
            if i > 0:
                i = i - 1
            else:
                province = a.find('a').get_text()
                # print(province)
                
                # 获取省的下一级链接(市)
                b = a.find('a')
                plink = b.get('href')
                # print(plink)
                i = 1
                # 获取市的相关数据
                citylink = url_open(url + plink)
                # print(citylink)
                citysoup = BeautifulSoup(citylin
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值