最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python3爬蟲全國(guó)地址信息

 更新時(shí)間:2019年01月05日 11:37:23   作者:只是個(gè)寶寶  
今天小編就為大家分享一篇關(guān)于Python3爬蟲全國(guó)地址信息,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧

PHP方式寫的一團(tuán)糟所以就用python3重寫了一遍,所以因?yàn)榈诙螌懥耍悸芬哺逦诵?/p>

提醒:可能會(huì)有502的錯(cuò)誤,所以做了異常以及數(shù)據(jù)庫事務(wù)處理,暫時(shí)沒有想到更好的優(yōu)化方法,所以就先這樣吧。待更懂python再進(jìn)一步優(yōu)化哈

歡迎留言賜教~

#!C:\Users\12550\AppData\Local\Programs\Python\Python37\python.exe
# -*- coding: utf-8 -*-
from urllib.request import urlopen
from bs4 import BeautifulSoup
import pymysql
import urllib.request
import re
from urllib.error import URLError, HTTPError
conn = pymysql.connect(host='127.0.0.1', user='root', passwd='root', db='test', charset='utf8')
db = conn.cursor()
curr_url = ''
# 請(qǐng)求網(wǎng)頁
def get_html(url):
  global curr_url
  user_agent = 'Mozilla/6.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.6796.99 Safari/537.36'
  response = urllib.request.Request(url)
  response.add_header('User-Agent', user_agent)
  response = urllib.request.urlopen(response)
  html = BeautifulSoup(response.read(), "html.parser", from_encoding='gbk')
  return html
def get_list(url, level=1, pid=0, get_level=2):
  data = [];
  level_arr = {'1': 'provincetr', '2': 'citytr', '3': 'countytr', '4': 'towntr', '5': 'villagetr'}
  try:
    print(url)
    html = get_html(url)
    c_url = url
    tr_list = html.findAll('tr', {'class': level_arr[str(level)]})
    for tr in tr_list:
      region_name, href, page = '', '', ''
      td_list = tr.findAll('td')
      for td in td_list:
        region_name = td.get_text();
        # 判斷是否存在該省份
        if (level == 1):
          sql = "select * from region where region_name='" + region_name + "'"
          db.execute(sql)
          exist = db.fetchone()
          if(exist):
            continue
        # 判斷是否全數(shù)字-非法則跳過
        if (region_name.isdigit()):
          continue
        if (region_name):
          sql = "insert into region(region_name,pid,level,url) value('" + region_name + "','" + str(
            pid) + "','" + str(level) + "','" + url + "')"
          db.execute(sql)
          db.execute('SELECT LAST_INSERT_ID();')
          last_id = db.fetchone()[0]
        if (td.a):
          page = td.a.attrs['href']
          pattern = re.compile(r'\w*.html')
          url = re.sub(pattern, page, c_url)
          if (level <= get_level):
            get_list(url, level + 1, last_id)
      # 每個(gè)省份執(zhí)行完成,則提交
      if (level == 1):
        conn.commit()
    return data;
  except HTTPError as e:
    # 如果有出錯(cuò),則回滾
    conn.rollback()
    print(e) # HTTP Error 502: Proxy Error
url = 'http://www.stats.gov.cn/tjsj/tjbz/tjyqhdmhcxhfdm/2017/index.html'
get_list(url)
print('執(zhí)行完成')

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(guān)鏈接

相關(guān)文章

  • Python3 搭建Qt5 環(huán)境的方法示例

    Python3 搭建Qt5 環(huán)境的方法示例

    這篇文章主要介紹了Python3 搭建Qt5 環(huán)境的方法示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • 用Python程序抓取網(wǎng)頁的HTML信息的一個(gè)小實(shí)例

    用Python程序抓取網(wǎng)頁的HTML信息的一個(gè)小實(shí)例

    這篇文章主要介紹了用Python程序抓取網(wǎng)頁的HTML信息的一個(gè)小實(shí)例,用到的方法同時(shí)也是用Python編寫爬蟲的基礎(chǔ),需要的朋友可以參考下
    2015-05-05
  • Python字符串中查找子串小技巧

    Python字符串中查找子串小技巧

    這篇文章主要介紹了Python字符串中查找子串小技巧,,需要的朋友可以參考下
    2015-04-04
  • python神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)使用Keras進(jìn)行簡(jiǎn)單分類

    python神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)使用Keras進(jìn)行簡(jiǎn)單分類

    這篇文章主要為大家介紹了python神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)使用Keras進(jìn)行簡(jiǎn)單分類,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-05-05
  • 一起來看看五條Python中的隱含特性

    一起來看看五條Python中的隱含特性

    這篇文章主要為大家詳細(xì)介紹了Python中的隱含特性,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-01-01
  • python編程PyAutoGUI庫使用與安裝簡(jiǎn)介

    python編程PyAutoGUI庫使用與安裝簡(jiǎn)介

    這篇文章主要為大家介紹了python編程中PyAutoGUI庫的使用與安裝簡(jiǎn)單介紹,文中含有視頻詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助
    2021-10-10
  • python 高階函數(shù)簡(jiǎn)單介紹

    python 高階函數(shù)簡(jiǎn)單介紹

    這篇文章主要介紹了python 高階函數(shù)的相關(guān)資料,幫助大家更好的理解和使用python,感興趣的朋友可以了解下
    2021-02-02
  • Django密碼存儲(chǔ)策略分析

    Django密碼存儲(chǔ)策略分析

    這篇文章主要介紹了Django密碼存儲(chǔ)策略分析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01
  • 使用C#配合ArcGIS Engine進(jìn)行地理信息系統(tǒng)開發(fā)

    使用C#配合ArcGIS Engine進(jìn)行地理信息系統(tǒng)開發(fā)

    這篇文章主要介紹了使用C#配合ArcGIS Engine進(jìn)行地理信息系統(tǒng)開發(fā),ArcGIS Engine是Windows系統(tǒng)上可以讓程序員創(chuàng)建自定義的GIS桌面程序,需要的朋友可以參考下
    2016-02-02
  • Python中六大超時(shí)處理方法介紹

    Python中六大超時(shí)處理方法介紹

    在?Python?中,超時(shí)處理是一項(xiàng)非常常見的需求,尤其是在處理阻塞任務(wù)或并發(fā)任務(wù)時(shí),本文整理了大家常用的六大超時(shí)處理方法,感興趣的小伙伴可以參考下
    2025-01-01

最新評(píng)論

来凤县| 双流县| 胶州市| 呈贡县| 雅安市| 连州市| 丹阳市| 马边| 慈利县| 巴马| 万安县| 威宁| 北川| 大名县| 靖宇县| 舒城县| 岐山县| 鸡西市| 宝清县| 东平县| 开封市| 乐清市| 莱阳市| 慈溪市| 固原市| 璧山县| 潢川县| 德安县| 金寨县| 苍梧县| 昌黎县| 聂拉木县| 鄂温| 阳春市| 北安市| 资源县| 江川县| 安溪县| 白银市| 平阴县| 广汉市|