背景
在简单学习和了requests库和正则表达式re库后,就尝试使用这两个第三方库完成爬取某旧书网书名价格并输出。于是选择了一个静态网页进行爬取,但是最终输出结果出现了部分乱序,是由于正则表达式遇到网页书名乱码导致的存入形式问题。
算法思路
1.爬取网页数据并解码得到文本
定义get方法爬取静态网页
def getHTML(url):
try:
kv={'user-agent':'Mozilla/5.0'}
r=requests.get(url,headers=kv,timeout=30)
r.raise_for_status()
r.encoding=r.apparent_encoding
return r.text
except:
return ""
2.按正则表达式查找得到书名和价格并存入列表ilt
def parsePage(ilt, html):
try:
plt= re.findall(r'price="(\d.*)"',html)
tlt= re.findall(r'alt="<b>(.*)</b>(.*)" error="0"',html)
for i in range(len(plt)):
ilt.append([plt[i],tlt[i][0]+tlt[i][1]])
except:
return ""