zoukankan      html  css  js  c++  java
  • 文计上机考试前的小小总结python

    1.获取网页

    1 import urllib.request as req
    2 #用urllib获取网页
    3 def getPage(url):
    4     page = req.urlopen(url)
    5     html = page.read().decode("gbk",errors="ignore")
    6     return html
    1 import requests
    2 from bs4 import BeautifulSoup
    3 #用requests获取网页
    4 def getHtml(url):
    5     r = requests.get(url)
    6     r.encoding = "utf-8"
    7     return r.text

    2.用beautiful soup解析

    1 def getlinks(): #获得十大链接
    2     url = "https://bbs.pku.edu.cn/v2/home.php"
    3     html = getHtml(url)
    4     soup = BeautifulSoup(html, 'html.parser')
    5     bigten = soup.find('section', attrs={'class':"topic-block big-ten"}) #找到十大标题
    6     links= bigten.findAll('a', attrs={'href': re.compile(r'post-read.php?bid=d{2,4}')}) #获取所有的十大链接
    7   #  print(links[2]['href'])
    8   #  exit()
    9     return links

    获得的links是一个二维数组,即获取了所有满足条件的标签,在第二个方括号里输入各种类型,如'href',可获得标签的相应属性

    2.lambda表达式

    1  friend.sort(key=lambda item: item[1], reverse=True)  # 按计数(第1个元素)进行排序

    item是要排序的东西,item[i]是依据什么排,reverse = true表示从大到小排序

    3.读取文件获得字符串

    1 f = open(fileName, "r",encoding="utf-8")
    2 content = "".join(list(f.readlines()))
    3 f.close()

    注意"".join的应用,双引号内表示用什么分割

    4.正则表达式

    1 patstr = '[a-zA-Z0-9]+@[a-zA-Z0-9]+.[a-zA-Z0-9]+'
    2 pat = re.compile(patstr)
    3 email = pat.findall(content)

    找到的email是个列表

    5.如何转成列表

    1 friend = list(relation[people].items())

    注意.items()

    6.用正则处理得到的html获得纯文本

    1 def getText(html):
    2     html = re.compile(r"<title>.*?</title>").sub("", html) 
    3     html = re.compile(r"<.*?>").sub("", html) 
    4     html = re.compile(r"&.*?;").sub("", html) #去掉奇怪的字母部分
    5     html = re.compile(r"[纯文学网站首页,《红楼梦》目录,purepen.com]").sub("", html) 
    6     html = re.compile(r"上一回").sub("", html) 
    7     html = re.compile(r"下一回").sub("", html) 
    8     html = re.compile(r"(s*?
    )+").sub("
    ", html)  #多个空行换成一个空行
    9     return html
  • 相关阅读:
    占位
    阳光服务平台-敏捷开发
    两种方法实现带验证码的用户登录
    红警大战JAVA简单版
    JPanel与JFrame的区别
    java中import详解
    敏捷开发
    GitHub:本地项目上传与团队协作
    从结缘计算机到未来规划
    (三)微信小程序首页的分类功能和搜索功能的实现笔记
  • 原文地址:https://www.cnblogs.com/fangziyuan/p/10186887.html
Copyright © 2011-2022 走看看