爬虫实战:urllib2 应用之如何实现对某贴吧数据针对爬取
import urllib.request
from bs4 import BeautifulSoup
def get_page(url):
"""
获取网页内容
:param url: 网页链接
:return: 网页内容
"""
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'}
req = urllib.request.Request(url, headers=headers)
page = urllib.request.urlopen(req)
return page.read().decode('utf-8')
def parse_page(html):
"""
解析网页内容,提取贴吧帖子标题
:param html: 网页内容
:return: 帖子标题列表
"""
soup = BeautifulSoup(html, 'html.parser')
titles = soup.find_all('a', class_='s xst')
return [title.get_text().strip() for title in titles]
def save_to_file(titles, file_name):
"""
保存帖子标题到文件
:param titles: 标题列表
:param file_name: 文件名
:return: None
"""
with open(file_name, 'w', encoding='utf-8') as f:
for title in titles:
f.write(title + '\n')
def main():
"""
主函数,控制流程
:return: None
"""
url = 'https://tieba.baidu.com/f?kw=python&ie=utf-8&pn=0'
html = get_page(url)
titles = parse_page(html)
save_to_file(titles, 'python_titles.txt')
if __name__ == '__main__':
main()
这段代码首先定义了一个获取网页内容的函数get_page
,使用了urllib.request
库来发送请求并获取网页源代码。然后定义了一个解析网页内容的函数parse_page
,使用了BeautifulSoup库来解析网页并提取贴吧帖子标题。最后,定义了一个将标题保存到文件的函数save_to_file
,并在main
函数中控制了整个爬取流程。这个简单的爬虫示例展示了如何使用Python网络爬虫库进行基本的网页爬取和数据解析。
评论已关闭