下载APP
登录
关闭
讲堂
算法训练营
Python 进阶训练营
企业服务
极客商城
客户端下载
兑换中心
渠道合作
推荐作者
当前播放: 68 | Beautiful Soup的安装和使用
00:00 / 00:00
标清
  • 标清
1.0x
  • 2.0x
  • 1.5x
  • 1.25x
  • 1.0x
  • 0.5x
网页全屏
全屏
00:00
付费课程,可试看

零基础学Python

共71讲 · 71课时·约540分钟
16024
免费
01 | Python语言的特点
免费
02 | Python的发展历史与版本
免费
03 | Python的安装
免费
04 | Python程序的书写规则
免费
05 | 基础数据类型
免费
06 | 变量的定义和常用操作
07 | 序列的概念
08 | 字符串的定义和使用
09 | 字符串的常用操作
10 | 元组的定义和常用操作
11 | 列表的定义和常用操作
12 | 条件语句
13 | for循环
14 | while循环
15 | for循环语句中的if嵌套
16 | while循环语句中的if嵌套
17 | 字典的定义和常用操作
18 | 列表推导式与字典推导式
19 | 文件的内建函数
20 | 文件的常用操作
21 | 异常的检测和处理
22 | 函数的定义和常用操作
23 | 函数的可变长参数
24 | 函数的变量作用域
25 | 函数的迭代器与生成器
26 | Lambda表达式
27 | Python内建函数
28 | 闭包的定义
29 | 闭包的使用
30 | 装饰器的定义
31 | 装饰器的使用
32 | 自定义上下文管理器
33 | 模块的定义
34 | PEP8编码规范
35 | 类与实例
36 | 如何增加类的属性和方法
37 | 类的继承
38 | 类的使用-自定义with语句
39 | 多线程编程的定义
40 | 经典的生产者和消费者问题
41 | Python标准库的定义
42 | 正则表达式库re
43 | 正则表达式的元字符
44 | 正则表达式分组功能实例
45 | 正则表达式库函数match与s...
46 | 正则表达式库替换函数sub...
47 | 日期与时间函数库
48 | 数学相关库
49 | 使用命令行对文件和文件夹...
50 | 文件与目录操作库
51 | 机器学习的一般流程与NumP...
52 | NumPy的数组与数据类型
53 | NumPy数组和标量的计算
54 | NumPy数组的索引和切片
55 | pandas安装与Series结构
56 | Series的基本操作
57 | Dataframe的基本操作
58 | 层次化索引
59 | Matplotlib的安装与绘图
60 | 机器学习分类的原理
61 | Tensorflow的安装
62 | 根据特征值分类的模型和代...
63 | 网页数据的采集与urllib库
64 | 网页常见的两种请求方式ge...
65 | HTTP头部信息的模拟
66 | requests库的基本使用
67 | 结合正则表达式爬取图片链...
68 | Beautiful Soup的安装和...
69 | 使用爬虫爬取新闻网站
70 | 使用爬虫爬取图片链接并下...
71 | 如何分析源代码并设计合理...
本节摘要

课程源码、课件及课后作业地址:

https://github.com/wilsonyin123/geekbangpython

精选留言(5)

  • 2019-09-09
    老师请问一下你那个html_doc咋导入的

    作者回复: html_doc 是网页点鼠标右键查看源代码获取的

  • 2019-08-06
    from bs4 import BeautifulSoup
    import requests

    headers = {
        "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8",
        "Accept-Language": "zh-CN,zh;q=0.8",
        "Connection": "close",
        "Cookie": "_gauges_unique_hour=1; _gauges_unique_day=1; _gauges_unique_month=1; _gauges_unique_year=1; _gauges_unique=1",
        "Referer": "http://www.infoq.com",
        "Upgrade-Insecure-Requests": "1",
        "User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.98 Safari/537.36 LBBROWSER"
    }

    #url = 'http://www.infoq.com/cn/news'
    url = 'http://news.baidu.com/'

    def craw(url):
        response = requests.get(url, headers=headers)

        soup = BeautifulSoup(response.text, 'lxml')

        for hotnews in soup.find_all('div', class_='hotnews'):
            for news in hotnews.find_all('a'):
                print(news.text,end=' ')
                print(news.get('href'))


    craw(url)

    换了个网页爬爬
    展开

    作者回复: 不错,静态页面都可以用这种方式爬取的

  • 2019-07-25
    print(soup.p['class'])
    为什么匹配的是第一个title 而不是story

    作者回复: soup.p['class'] 默认取第一个,soup.find_all('p')取所有的p标签

  • 2018-10-18
    pip3安装bs4报错 之前安装requests都可以的 报错信息如下
    07Exception:
    Traceback (most recent call last):
      File "c:\users\acadsoc\appdata\local\programs\python\python36\lib\site-package
    s\pip\_vendor\urllib3\response.py", line 331, in _error_catcher
        yield
      File "c:\users\acadsoc\appdata\local\programs\python\python36\lib\site-package
    s\pip\_vendor\urllib3\response.py", line 413, in read
        data = self._fp.read(amt)
      File "c:\users\acadsoc\appdata\local\programs\python\python36\lib\site-package
    s\pip\_vendor\cachecontrol\filewrapper.py", line 62, in read
        data = self.__fp.read(amt)
      File "c:\users\acadsoc\appdata\local\programs\python\python36\lib\http\client.
    py", line 449, in read
        n = self.readinto(b)
      File "c:\users\acadsoc\appdata\local\programs\python\python36\lib\http\client.
    py", line 493, in readinto
        n = self.fp.readinto(b)
      File "c:\users\acadsoc\appdata\local\programs\python\python36\lib\socket.py",
    line 586, in readinto
        return self._sock.recv_into(b)
      File "c:\users\acadsoc\appdata\local\programs\python\python36\lib\ssl.py", lin
    e 1009, in recv_into
        return self.read(nbytes, buffer)
      File "c:\users\acadsoc\appdata\local\programs\python\python36\lib\ssl.py", lin
    e 871, in read
        return self._sslobj.read(len, buffer)
      File "c:\users\acadsoc\appdata\local\programs\python\python36\lib\ssl.py", lin
    e 631, in read
        v = self._sslobj.read(len, buffer)
    socket.timeout: The read operation timed out

    During handling of the above exception, another exception occurred:

    Traceback (most recent call last):
      File "c:\users\acadsoc\appdata\local\programs\python\python36\lib\site-package
    s\pip\_internal\cli\base_command.py", line 143, in main
        status = self.run(options, args)
      File "c:\users\acadsoc\appdata\local\programs\python\python36\lib\site-package
    s\pip\_internal\commands\install.py", line 318, in run
        resolver.resolve(requirement_set)
      File "c:\users\acadsoc\appdata\local\programs\python\python36\lib\site-package

    展开

    作者回复: 试试下载离线包安装一下,上面的错误提示并没有明确错误的原因

  • 2018-07-27
    老师,bs4库去哪里能下载到?有网址吗?给一个?谢谢🙏 ,爬虫用到的库一般都去哪里下载?

    作者回复: 都是通过pip这个工具安装的,由于最近pip有升级,因此在安装软件包之前需要升级pip程序
    使用 pip install --upgrade pip 就可以更新为最新版,使用pip install bs4 可以通过网络自动下载并安装 bs4库