圆月山庄资源网 Design By www.vgjia.com
PHP方式写的一团糟所以就用python3重写了一遍,所以因为第二次写了,思路也更清晰了些。
提醒:可能会有502的错误,所以做了异常以及数据库事务处理,暂时没有想到更好的优化方法,所以就先这样吧。待更懂python再进一步优化哈
欢迎留言赐教~
#!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 = '' # 请求网页 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 # 判断是否全数字-非法则跳过 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) # 每个省份执行完成,则提交 if (level == 1): conn.commit() return data; except HTTPError as e: # 如果有出错,则回滚 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('执行完成')
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对的支持。如果你想了解更多相关内容请查看下面相关链接
圆月山庄资源网 Design By www.vgjia.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
圆月山庄资源网 Design By www.vgjia.com
暂无评论...
更新日志
2024年11月06日
2024年11月06日
- 雨林唱片《赏》新曲+精选集SACD版[ISO][2.3G]
- 罗大佑与OK男女合唱团.1995-再会吧!素兰【音乐工厂】【WAV+CUE】
- 草蜢.1993-宝贝对不起(国)【宝丽金】【WAV+CUE】
- 杨培安.2009-抒·情(EP)【擎天娱乐】【WAV+CUE】
- 周慧敏《EndlessDream》[WAV+CUE]
- 彭芳《纯色角3》2007[WAV+CUE]
- 江志丰2008-今生为你[豪记][WAV+CUE]
- 罗大佑1994《恋曲2000》音乐工厂[WAV+CUE][1G]
- 群星《一首歌一个故事》赵英俊某些作品重唱企划[FLAC分轨][1G]
- 群星《网易云英文歌曲播放量TOP100》[MP3][1G]
- 方大同.2024-梦想家TheDreamer【赋音乐】【FLAC分轨】
- 李慧珍.2007-爱死了【华谊兄弟】【WAV+CUE】
- 王大文.2019-国际太空站【环球】【FLAC分轨】
- 群星《2022超好听的十倍音质网络歌曲(163)》U盘音乐[WAV分轨][1.1G]
- 童丽《啼笑姻缘》头版限量编号24K金碟[低速原抓WAV+CUE][1.1G]