主要是复习《Python网络数据采集》的基础章节,参考了imooc站老师的一些代码,用到漂亮汤了我竟然不会写了。最后的代码如下:
from urllib.request import urlopen #需要urlopen打开链接,BeautifulSoup解析Html
from bs4 import BeautifulSoup
class Spider():
def get_html(self):
html = urlopen("https://zh.moegirl.org/zh-cn/Mainpage") #萌娘百科简中首页
return html
if __name__ == "__main__":
spider = Spider()
bs = BeautifulSoup(spider.get_html(), 'html.parser', from_encoding='utf-8')
#找出首页所有<p>标签内容,并最终只取其文本内容
findHtmls = bs.findAll('p')
# print(findHtmls.get_text()) 错误,List对象没有get_text()
for html in findHtmls:
print(html.get_text())
#保存了整个html页面
f = open('go.html','w')
f.write(str(spider.get_html().read(),'utf-8'))
f.close()
print('done')
其间遇到了一个问题就是不知道怎么打印出findAll得到的内容,后来翻书发现findAll的返回是一个List……囧……
以后一定要记得了:
find返回的是字符串;
findAll返回的是字符串们的列表。