爬虫之bs4学习

简介: 爬虫之bs4学习

爬取小说水浒传  代码例子:

# ================================
# 先下载需要的包
# pip install bs4
# pip install lxml
from bs4 import BeautifulSoup
# 小说网  水浒传
url = "http://book.zongheng.com/showchapter/681921.html"
res = requests.get(url,headers=headers)
# 解决文字乱码  解决乱码
res.encoding = "utf8"
bs1 = BeautifulSoup(res.text,"lxml")
arr = bs1.find_all("ul",class_="chapter-list clearfix")[0].find_all("a")
for i in arr:
    url = i.attrs['href']
    res = requests.get(url,headers=headers)
    res.encoding="utf8"
    bs2 = BeautifulSoup(res.text,"lxml")
    arr = bs2.find("div",class_="content").find_all("p")
    for i in range(len(arr)):
        s = arr[i].text
        if i==0:
            s = "\n\n\n\n\n\n\n" + s + "\n\n"
        print(s)
        with open("D://水浒传.txt","a",encoding="utf-8")as f:
            f.write(s)
print("下载完毕")

View Code

下面是bs4基本用法:

使用流程:       
    - 导包:from bs4 import BeautifulSoup
    - 使用方式:可以将一个html文档,转化为BeautifulSoup对象,然后通过对象的方法或者属性去查找指定的节点内容
        (1)转化本地文件:
             - soup = BeautifulSoup(open('本地文件'), 'lxml')
        (2)转化网络文件:
             - soup = BeautifulSoup('字符串类型或者字节类型', 'lxml')
        (3)打印soup对象显示内容为html文件中的内容
基础巩固:
    (1)根据标签名查找
        - soup.a   只能找到第一个符合要求的标签
    (2)获取属性
        - soup.a.attrs  获取a所有的属性和属性值,返回一个字典
        - soup.a.attrs['href']   获取href属性
        - soup.a['href']   也可简写为这种形式
    (3)获取内容
        - soup.a.string
        - soup.a.text
        - soup.a.get_text()
       【注意】如果标签还有标签,那么string获取到的结果为None,而其它两个,可以获取文本内容
    (4)find:找到第一个符合要求的标签
        - soup.find('a')  找到第一个符合要求的
        - soup.find('a', title="xxx")
        - soup.find('a', alt="xxx")
        - soup.find('a', class_="xxx")
        - soup.find('a', id="xxx")
    (5)find_all:找到所有符合要求的标签
        - soup.find_all('a')
        - soup.find_all(['a','b']) 找到所有的a和b标签
        - soup.find_all('a', limit=2)  限制前两个
    (6)根据选择器选择指定的内容
               select:soup.select('#feng')
        - 常见的选择器:标签选择器(a)、类选择器(.)、id选择器(#)、层级选择器
            - 层级选择器:
                div .dudu #lala .meme .xixi  下面好多级
                div > p > a > .lala          只能是下面一级
        【注意】select选择器返回永远是列表,需要通过下标提取指定的对象
相关文章
|
数据采集 JavaScript 数据安全/隐私保护
「Python」爬虫实战-北京公交线路信息爬取(requests+bs4)
使用requests爬取北京公交线路信息,目标网址为[https://beijing.8684.cn/](https://beijing.8684.cn/)。 爬取的具体信息为公交线路名称、公交的运营范围、运行时间、参考票价、公交所属的公司以及服务热线、公交来回线路的途径站点。
1963 0
|
1天前
|
数据采集 Java
爬虫系统学习
爬虫系统学习
|
1月前
|
数据采集 XML 前端开发
五:《智慧的网络爬虫》— bs4数据解析
【8月更文挑战第4天】bs4(Beautiful Soup 4)是python的一个库,最主要的功能是从网页抓取数据,它能够通过你喜欢的转换器实现惯用的文档导航,查找,修改文档的方式。BeautifulSoup会帮你节省数小时甚至数天的工作时间。在本篇文章的最后设置了一个爬取全国所有天气的项目作为本篇文章的总结,愿大家有所收获~
45 6
五:《智慧的网络爬虫》— bs4数据解析
|
数据采集 数据安全/隐私保护 索引
爬虫学习
爬虫学习
|
数据采集 JSON 网络协议
爬虫学习(前期知识学习)
爬虫学习(前期知识学习)
|
数据采集 数据可视化 Python
Python爬虫学习——简单爬虫+可视化
Python爬虫学习——简单爬虫+可视化
200 0
|
数据采集 XML 前端开发
爬虫学习:pyquery的使用
pyquery:一个类似jquery的python库,pyquery 允许我们对 xml 文档进行 jquery 查询。API 尽可能地类似于 jquery。pyquery 使用 lxml 进行快速 xml 和 html 操作,熟悉jquery的朋友快来学习python中的pyquery。
152 0
爬虫学习:pyquery的使用
|
数据采集 XML 移动开发
爬虫学习:Beautiful Soup的使用
一个强大的解析工具——Beautiful Soup,只需简单的几段代码就可以完成网页中某个信息的提取,一起来见识一下它的强大之处叭!
163 0
爬虫学习:Beautiful Soup的使用
|
数据采集 编译器 开发者
爬虫学习:XPath的使用
熟知XPath的使用来进行HTML信息锁定并获取
239 0
爬虫学习:XPath的使用
|
数据采集 自然语言处理 测试技术
爬虫学习:正则表达式
爬虫学习需要熟知正则表达式的正确使用
159 0
爬虫学习:正则表达式