python三位小数,菜鸟教程python3
总结常用的功能小实例,快速学习并掌握大蟒技能
总结常用的功能小实例,快速学习并掌握大蟒技能
1.墨迹天气
导入请求
从lxml.html进口诡异又阴森的树形灯
导入数据
导入时间#导入模块
类MoJiWeather():
定义城市名称(自身):#定义一个输入城市名称的函数
cityname=str(input(输入城市名称:))
返回城市名
def search_city(城市名称):#搜索这个城市
index _ URL= http://天齐。莫吉。com/API/city search/% s % city _ name #构造查询相应城市天气的全球资源定位器(统一资源定位器)
响应=请求。get(index _ URL)
response.encoding=utf-8
尝试:#异常捕获
city _ id=JSON。负载(响应。正文).get(city_list)[0].get(cityId)#通过上面的全球资源定位器(统一资源定位器)获取城市的编号
city _ URL= http://天齐。莫吉。com/API/redirect/% s % str(city _ id)#通过城市编号获取城市天气
返回城市_网址
除了:
打印(城市名输入错误)
退出()
定义解析(城市网址):#解析函数
响应=requests.get(城市网址)
response.encoding=utf-8
html=etree .HTML(响应。文本)
current _ city=html。XPath(//div[@]/em/text())[0]#下面都是利用语言解析的
打印(当前城市:当前城市)
current _ kongqi=html。XPath(//div[@]/div[@]/ul/Li/a/em/text())[0]
打印(空气质量: current_kongqi)
当前_杜文=html。XPath(//div[@]/div[@]/em/text())[0]
打印(当前温度:当前_杜文)
当前天气=html。XPath(//div[@]/b/text())[0]
打印(天气状况:当前天气)
当前_杜诗=html。XPath(//div[@]/div[@]/span/text())[0]
打印(当前湿度:当前_杜诗)
当前_季枫=html。XPath(//div[@]/div[@]/em/text())[0]
打印(当前风速:当前_季枫)
京典=html。XPath(//div[@]/div[@][2]/div[@]/ul/Li/a/text())
打印(附近景点:)
对于京典中的j:
打印( \t\t j)
if __name__==__main__ :
打印(欢迎使用墨迹天气查询系统)
city _ name=莫吉天气。城市名称(1)
city _ URL=莫吉天气。搜索_城市(城市名称)
MoJiWeather.parse(city_url)
打印(谢谢使用本查询系统)
输入(按任意键退出.)
2.蒂奥贝排行榜
导入数据
从什么是导入诡异又阴森的树形灯
从lxml.etree导入语法分析错误
导入请求
从请求.异常导入请求异常
什么是实例应用
获取页面数据
定义一个到页面(网址):
标题={
用户代理: Mozilla/5.0(Windows NT 10.0;win 64x 64)apple WebKit/537.36(KHTML,像壁虎一样)Chrome/67。0 .3396 .62 Safari/537.36英尺
}
尝试:
res=requests.get(url,headers=headers)
body=res.text #获取网页内容
除了请求异常作为e:
打印("请求是错误的",e)
尝试:
html=etree .HTML(body,etree .HTMLParser())
# tr下的所有子孙节点(只获取文本数,图片资源不获取)
结果=html。XPath(//table[contains(@ class, table-top20)]/tbody/tr//text())
位置=0
对于范围内的我(20岁):
如果i==0:
产出结果[我:5]
否则:
产出结果[位置:位置5]
pos=5
除了解析错误为e:
打印(电子位置)
写入文件
定义写文件(数据):
对于数据中的项目:
sul={
2018年6月排行:项目[0],
2017年6排行:项目[1],
开发语言:项目[2],
评级:项目[3],
变化率:项目[4]
}
#与更好处理异常情况,进行文件的关闭后续工作
with open(test.txt , a ,encoding=utf-8) as f:
f.write(json.dumps(sul,确保_ascii=False) \n )
f.close()
打印(苏尔)
不返回
主程序
def main():
URL= https://www。会的。com/TiO be-index/
数据=一页到一页(网址)
ret=write_file(data)
如果ret==无:
打印("确定")
if __name__==__main__ :
主()
3.新闻列表
墨迹天气文章爬虫
导入请求
导入数据
从lxml.html进口诡异又阴森的树形灯
从lxml.etree导入语法分析错误
解析页面内容
def parseHtml(内容):
尝试:
html=etree .HTML(内容,etree .HTMLParser())
# one=html.xpath(//ul[@ ]//text())
one=html。XPath(//ul[@]//Li/a/@ href )
打印(一份)
退出(0)
循环=8
位置=0
对于范围内的我(20岁):
如果i==0:
产生一个[0:循环]
否则:
产生一个[位置:位置循环]
位置=回路
除了解析错误为e:
打印(电子位置)
写入文件
定义写日志(数据):
对于数据中的项目:
消息={
发文时间:项目[3],
文章标题:项目[5]
}
用打开( moji.log , a ,编码=utf-8 )作为女:
f.write(json.dumps(msg,确保_ascii=False) \n )
f.close()
打印(邮件)
不返回
主程序
def main():
对于范围内的页面(1,73):
URL= https://Tianchi . moji . com/news/list/莫吉/{} .格式(页面)
res=requests.get(url)
res.encoding=utf-8
content=parseHtml(res.text)
ret=write_log(内容)
如果浸水使柔软为无:
打印("确定")
if __name__==__main__ :
主()
4.爬取互联网协议(互联网协议)
导入请求
进口是
随机导入
从bs4导入美丽的声音
ua_list=[
Mozilla/5.0(Windows NT 10.0;win 64x 64)apple WebKit/537.36(KHTML,像壁虎一样)Chrome/72。0 .3626 .109 Safari/537.36 ,
Mozilla/5.0(X11;Linux x86 _ 64)苹果WebKit/537.36(KHTML,像壁虎)Chrome/62。0 .3202 .75 Safari/537.36 ,
Mozilla/5.0(麦金塔;英特尔Mac OS X 10 _ 13 _ 6)苹果WebKit/537.36(KHTML像壁虎)Chrome/72。0 .3626 .119 Safari/537.36 ,
Mozilla/5.0(Windows NT 6.1;WOW64) AppleWebKit/537.36(KHTML,像壁虎)Chrome/45。0 .2454 .101 safari/537.36
]
def ip_parse_xici(第页):
:参数页面:采集的页数
:返回:
ip_list=[]
对于范围内的pg(1,int(page)):
URL= http://www。西祠戴笠。com/nn/ str(pg)
用户代理=随机选择(ua列表)
my_headers={
接受:文本/html,应用程序/xhtml xml,应用程序/XML;
Accept-Encoding: gzip,deflate,sdch ,
接受-语言: zh-CN,zh;q=0.8 ,
参考人: http://www.xicidaili.com/nn,
用户代理:用户代理
}
尝试:
r=requests.get(url,headers=my_headers)
soup=BeautifulSoup(r.text, html.parser )
请求除外。例外情况。关系错误:
打印(连接错误)
否则:
data=soup.find_all(td )
# 定义互联网协议(互联网协议)和端口模式规则
IP _ compile=re . compile(r (\ d \ \ d \ \ d \ \ d))#匹配互联网协议(互联网协议)
port _ compile=re编译(r (\ d )#匹配端口
ips=re.findall(ip_compile,str(data)) #获取所有互联网协议(互联网协议)
ports=re.findall(port_compile,str(data)) #获取所有端口
check _ API=http://ip.taobao.com/service/getIpInfo2.php?ip=
对于范围内的I(len(IPS)):
如果我贷款(ips):
ip=ips[i]
api=check_api ip
api_headers={
用户代理:用户代理
}
尝试:
response=requests.get(url=api,headers=api_headers,timeout=2)
打印( ip:%s可用% ip)
例外情况为e:
打印(此ip %s已失效:%s % (ip,e))
德尔ips[i]
德尔波特斯
ips_usable=ips
ip_list=[: .join(n) for n in zip(ips_usable,ports)] #列表生成式
打印(第{}页互联网协议(互联网协议的缩写)采集完成。格式(pg))
打印(ip_list)
if __name__==__main__ :
xici_pg=输入(请输入需要采集的页数:)
ip_parse_xici(page=xici_pg)
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。