《2018年6月13日》【连续245天】
标题:BeautifulSoup库和正则表达式复习;
内容:
1.今天回头复习了一下bs库,并尝试写了代码:
import requests
from bs4 import BeautifulSoup
import bs4
def getHTMLText(url):
try:
r = requests.get(url)
r.raise_for_status()
r.encoding =r.apparent_encoding
return r.text
except:
return ""
def getGame(URL):
html = getHTMLText(URL)
soup = BeautifulSoup(html, 'html.parser')
for a in soup.find_all('a'):
print(a['href'])
def main():
Game_list_url = 'http://www.gamersky.com/'
getGame(Game_list_url)
main()
本来是想爬取游民星空的超链接,结果发现趴下来一些多余的字符:
明天修改一下,把它消掉。
其实还可以写正则表达式,结果发现快忘光了。
等价:
等价是等同于的意思,表示同样的功能,用不同符号来书写。
?,*,+,\d,\w 都是等价字符
?等价于匹配长度{0,1}
*等价于匹配长度{0,}
+等价于匹配长度{1,}
\d等价于[0-9]
\D等价于[^0-9]
\w等价于[A-Za-z_0-9]
\W等价于[^A-Za-z_0-9]。
常用运算符与表达式:
^ 开始
() 域段
[] 包含,默认是一个字符长度
[^] 不包含,默认是一个字符长度
{n,m} 匹配长度
. 任何单个字符(\. 字符点)
| 或
\ 转义
$ 结尾
[A-Z] 26个大写字母
[a-z] 26个小写字母
[0-9] 0至9数字
[A-Za-z0-9] 26个大写字母、26个小写字母和0至9数字
, 分割
.
分割语法:
[A,H,T,W] 包含A或H或T或W字母
[a,h,t,w] 包含a或h或t或w字母
[0,3,6,8] 包含0或3或6或8数字