python三位小数,菜鸟教程python3

  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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: