php抓取网页连接函数(如何使用beatifulsoup来实现我们的第二个函数:3.3整理数据)
优采云 发布时间: 2021-10-07 16:31php抓取网页连接函数(如何使用beatifulsoup来实现我们的第二个函数:3.3整理数据)
中间。其中title在label的正文里面,body在正文里面
标签的内容。
因此,我们可以使用 beatifulsoup 来实现我们的第二个功能:
def parse_article(html):
soup = BeautifulSoup(html, 'html.parser')
# 从上面的数据获取html文档并解析,这里使用的是Python自带的HTML解释器
article = soup.find('div', attrs={'class': 'post f'})
# 缩小HTML文档的解析范围,限定在文章主体内部。
title = article.find('h1').getText()
# 获取文章主体内部的标签内的文本,可以发现这就是标题内容。
paras = []
# 创建一个列表,以段落的形式,向里面填充文本。
for paragraph in article.find_all('p'):
p_content = paragraph.getText()
# 获取<p>标签内的文本,这里就是段落文本内容。
paras.append(p_content)
return title, paras
# 返回标题和参数,用于写入文件。
3.3 整理数据
获得我们需要的所有数据(标题和内容)后,我们需要将其写入文件。我们首先需要拼接一个文件名,创建并打开文件。注意这里的参数 wb。在Python3.X中,b参数是自动添加的(不写就填,有的话就自己不填);但是在 Python2.X 中,情况并非如此,所以最好填写它,以避免更改版本后出现一些奇怪的错误。当然不用改啦~
def get_article(title, url):
file_name = title + '.txt'
# 拼接文件名
with codecs.open(file_name, 'wb', encoding='utf-8') as fp:
html = download_page(url)
# 调用第一个函数获取数据
title2, text = parse_article(html)
# 调用第二个函数获取数据
fp.write('\t%s\t\r\n' % title2)
for p in text:
fp.write('\t%s\r\n' % p)
# 将获取的数据写入文件。
print('文章读取完毕!')
return 'OK'
最后,我们必须编写另一个 if 语句来确定是运行还是导入。在运行文件时,我们可以通过调用第三个函数来达到我们的目的。
if __name__ == '__main__':
url = 'http://jandan.net/2016/02/18/caribbean-whales.html'
get_article(url)
4. 文章 结束前的一些话
好了,这篇文章到此结束。还有一个爬虫用来抓取下面的简单主页文章。不过爬取的过程也是上面的步骤,看懂了就可以写出来。如果你不明白...好吧,我只是想炫耀一下,因为我很高兴,哈哈哈哈来打我吧~~
我是胡一博,一个每天都被自己唤醒的帅气聪明的人。如果您发现这些代码有任何问题,请告诉我,我会尽快回复并寄钱!钱可以分配给任何人或组织(比如慈善组织和开源项目),就酱~