正则表达式
定向爬虫
在学习嵩天老师的python爬虫实例中的定向爬取中国好大学排行。时过境迁, 嵩天老师的代码也不太正确了。
踩了一些小小的坑,由此学习了正则表达式 。
😋当然在此之前,先贴出定向爬取中国好大学排行的定向爬虫🦗吧
import requests
from bs4 import BeautifulSoup
import bs4
import re
def main():
uinfo = []
url = "https://www.shanghairanking.cn/rankings/bcur/2020"
htmlText = getHtmlText(url)
fillList(uinfo, htmlText)
printList(uinfo, 20)
def getHtmlText(url):
try:
r = requests.get(url)
r.raise_for_status()
r.encoding = r.apparent_encoding
return r.text
except:
print("获取失败")
return ""
def fillList(uinfo, htmlText):
soup = BeautifulSoup(htmlText, 'html.parser')
pattern = re.compile(r'[\n ]+')#正则表达式进行数据清理
for tr in soup.find('tbody').children:
if isinstance(tr, bs4.element.Tag):
tds = tr('td')
uinfo.append([pattern.sub('', tds[0].text),\
pattern.sub('', tds[1].text),\
pattern.sub('', tds[4].text)]