安装
pip install beautifulsoup4
建议安装lxml,作为beautiful soup的内置解析器
对于windows,到 http://www.lfd.uci.edu/~gohlke/pythonlibs/ 搜索下载并安装
pip3 install "lxml-3.6.0-cp35-cp35m-win_amd64.whl"
核心方法
http://www.crummy.com/software/BeautifulSoup/bs4/doc.zh/
find(name, attrs, recursive, text, **kwargs)
find_all(name, attrs, recursive, text, **kwargs)
name对应tag名字,比如'div'
attrs对应tag的属性,比如id='myid',对于class直接输入名字,不可使用class='xxx',可以设置True和False来过滤tag是否拥有该属性
tag可以通过 . 运算符依次获取下一级的tag,e.g. tag.div.a
tag的内容可以通过string获取,属性可以通过get('attr_name')获取
代码
import requests from bs4 import BeautifulSoup user_root_blog = 'http://xuanzhui.iteye.com/' # 伪装一下 headers = {'user-agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.93 Safari/537.36'} page_str = requests.get(user_root_blog, headers = headers).text # 解析一下总共多少页 soup = BeautifulSoup(page_str, 'lxml') # 分页数据的根节点 page_div = soup.find('div', 'pagination') total_page = 1 if page_div: page_tags = page_div.find_all('a', False) page_arr = [int(page.string) for page in page_tags if page.string.isdigit()] if page_arr: total_page = max(page_arr) print('total page:', total_page) # 解析blog的函数 def parse_to_get_blogs(page_str): soup = BeautifulSoup(page_str, 'lxml') # 得到文章列表标题的所有节点 title_tags = soup.find_all('div', 'blog_title') if not title_tags: return url_pref = user_root_blog[:-1] return [(url_pref + tag.h3.a.get('href'), tag.h3.a.string) for tag in title_tags] blogs = parse_to_get_blogs(page_str) # 如果没有文章 if not blogs: print("no valid titles") exit(0) for i in range(2, total_page + 1): url = user_root_blog + '?page=' + str(i) print('parsing ', url) page_str = requests.get(url, headers=headers).text blogs.extend(parse_to_get_blogs(page_str)) with open('blogs.txt', 'w') as f: for tmp in blogs: f.write(tmp[0]) f.write('\n') f.write(tmp[1]) f.write('\n\n')
相关推荐
### Python 3 使用 BeautifulSoup 抓取 Div 标签方法详解 在进行网页数据抓取时,经常需要用到Python的BeautifulSoup库来解析HTML文档,并从中提取有用的信息。在本篇文章中,我们将详细介绍如何使用Python 3结合...
这里我们用列表推导式来获取所有链接元素的`href`属性。 **5. 存储数据** 抓取到的数据通常需要存储起来,比如保存到文件或数据库。以文本文件为例: ```python with open('articles.txt', 'w', encoding='utf-8'...
在这个项目中,我们利用Scrapy来实现CSDN(China Software Developer Network)的自动登录功能,并进一步获取博客分类列表。这个过程涉及到了网络请求、网页解析、登录验证以及数据提取等多个环节。 首先,我们需要...
使用场景及目标:学习如何使用 requests 和 BeautifulSoup 进行简单的网页爬虫开发,获取特定网站的数据。 阅读建议:读者可以在自己的环境中运行示例代码,并结合本文提供的详细解释进行练习,同时注意遵守网站的...
本教程将专注于使用Python爬虫来自动获取CSDN博客的收藏文章。CSDN(China Software Developer Network)是中国最大的开发者社区,其中包含了丰富的技术博客和资源,是程序员学习和交流的重要平台。 首先,我们需要...
这些信息应当存储在一个结构化的数据格式中,如列表或字典,方便后续处理。 接下来,我们将利用Python的`docx`库来创建Word文档。`python-docx`是一个用于读写Microsoft Word .docx文件的库。我们可以创建一个新的`...
CSDN(Chinese Software Developer Network)是中国的一个大型程序员社区,其中包含大量的技术博客,是获取编程知识的重要资源。 【描述】:“抓取CSDN博客文章的简单爬虫python源码” 这个描述暗示我们将学习如何...
例如,我们可以使用`get()`函数来获取博客的页面内容: ```python import requests response = requests.get('http://example.com/blog') html_content = response.text ``` 接着,我们需要解析HTML内容。这通常...
1. **输入用户名获取博客列表**:用户只需提供CSDN的用户名,下载器便会自动访问该用户的个人主页,抓取博客列表。 2. **多篇文章下载**:下载器能够一次性下载多篇博客,包括文章的标题、正文、评论等信息。 3. *...
首先,我们要了解如何从互联网上获取博客文章。博客通常是以HTML网页的形式存在,每个博客文章都有一个唯一的URL。通过编写网络爬虫程序,我们可以利用HTTP或HTTPS协议向服务器发送请求,获取指定URL的HTML源代码。...
在这个小爬虫中,目标是获取新浪博客用户的URL,因此解析过程会聚焦于识别与博客用户相关的HTML元素。 三、多线程技术 为了加快爬虫的运行速度,项目采用了多线程。在Python中,可以使用threading模块创建和管理多...
4. 编写解析规则,根据博客页面的HTML标签和属性,如标签的href属性来定位博客链接,标签来获取博客的标题等,从而提取出每篇博客的详细信息。 5. 将爬取的数据存储在适当的数据结构中,如列表、字典等。 6. 对爬取...
在"中文独立博客列表"这个项目中,可能使用了Python的requests库来发送HTTP请求,获取博客的网页内容;使用BeautifulSoup或者lxml等库解析HTML,提取博客的链接、作者、更新时间等信息;可能还用到了pandas库对数据...
首先,程序需要能够识别和定位目标博客账号,这通常涉及到解析和理解CSDN博客的网页结构,以及提取出博客列表的URL。接着,爬虫会遍历这个列表,对每一个博客文章进行访问,提取文章的标题、内容和其他相关信息。...
许多博客平台提供了公开的API,允许用户以结构化的方式获取和发布内容。例如,使用WordPress REST API,开发者可以通过发送HTTP请求获取文章详情,甚至发布新的文章。这种方式需要熟悉OAuth认证、JSON数据格式和HTTP...
在压缩包子文件的文件名称列表中,“python 新浪博客归档工具”可能是实际的Python脚本或相关的文件夹,里面可能包含以下组件: 1. Python源代码文件:通常以`.py`为扩展名,这是实现爬虫逻辑的主程序。 2. 数据存储...
【标题】中的“csdn_get_readcount”是一个Python脚本,专门用于自动获取CSDN博客文章的阅读量数据。这个功能对于博客作者或者数据分析人员来说非常有用,可以帮助他们了解文章的受欢迎程度,从而调整写作策略。 ...
2. **技术栈**:使用的编程语言(如Python)、爬虫框架(如Scrapy、BeautifulSoup)、数据解析库(如pandas)等。 3. **爬虫流程**:如何构造HTTP请求,解析HTML或JSON响应,跟踪页面链接,处理分页等。 4. **数据...
通过上述分析和代码示例,我们可以了解到使用Python模拟登录CSDN并获取博客文章列表的过程。这不仅对于想要自动化管理自己博客内容的用户来说非常有用,同时也为学习网络爬虫技术提供了一个很好的实践案例。需要注意...
3. **个人博客的爬**:强调了爬取的对象是特定用户的博客文章,需要识别和定位每个用户的博客页面及文章列表。 【压缩包子文件的文件名称列表】:crawlcsdn “crawlcsdn”很可能是一个包含了爬取结果的压缩文件,...