为了账号安全,请及时绑定邮箱和手机立即绑定

Python开发简单爬虫

蚂蚁帅帅 全栈工程师
难度初级
时长 1小时14分
学习人数
综合评分9.67
646人评价 查看评价
9.9 内容实用
9.6 简洁易懂
9.5 逻辑清晰
  • 实现方式:

    1. 内存:python 内存,待爬取url集合:set(),已爬取:set()。 set可以去掉重复的

    2. 关系数据库(表形式)urls(url,is_crawled)

    3. 缓存数据库 redis 待/已爬取集合:set,支持set (高性能,都用它)


    查看全部
  • URL管理器:防止重复抓取,循环抓取


    查看全部
  • 看图就好了

    查看全部
  • web crawler调度端→URL管理器→网页下载器→网页解析器→价值数据

    查看全部
  • 抓取想要信息

    查看全部

  • import re  #导入正则表达式要用的模块


    from bs4 import BeautifulSoup


    html_doc = """

    <html><head><title>The Dormouse's story</title></head>

    <body>

    <p class="title"><b>The Dormouse's story</b></p>


    <p class="story">Once upon a time there were three little sisters; and their names were

    <a href="http://example.com/elsie" class="sister" id="link1">Elsie</a>,

    <a href="http://example.com/lacie" class="sister" id="link2">Lacie</a> and

    <a href="http://example.com/tillie" class="sister" id="link3">Tillie</a>;

    and they lived at the bottom of a well.</p>


    <p class="story">...</p>

    """


    soup=BeautifulSoup(html_doc,'html.parser')  #(文档字符串,解析器)


    print('获取所有链接:')

    links=soup.find_all('a')

    for link in links:

        print(link.name,link['href'],link.get_text())  #(名称,URL,文字)


    print('获取指定链接(获取Lacie链接):')

    #link_node=soup.find('a',id="link2") 运行结果一样

    link_node=soup.find('a',href='http://example.com/lacie')  #注意find和find_all

    print(link_node.name,link_node['href'],link_node.get_text())


    print('输入正则模糊匹配出需要的内容:')

    link_node=soup.find('a',href=re.compile(r"ill"))  #'r'表示正则中出现反斜线时,我们只需写一个反斜线,否则我们要写两个

    print(link_node.name,link_node['href'],link_node.get_text())


    print('输入p这个段落文字(指定class获取内容):')

    p_node=soup.find('p',class_="story")

    print(p_node.name,p_node.get_text())



    输出:

    获取所有链接:
    a http://example.com/elsie Elsie
    a http://example.com/lacie Lacie
    a http://example.com/tillie Tillie
    获取指定链接(获取Lacie链接):
    a http://example.com/lacie Lacie
    输入正则模糊匹配出需要的内容:
    a http://example.com/tillie Tillie
    输入p这个段落文字(指定class获取内容):
    p Once upon a time there were three little sisters; and their names were
    Elsie,
    Lacie and
    Tillie;
    and they lived at the bottom of a well.


    查看全部
  • 下载 网页的方法  1 :最简洁的方法  

    import urllib 2  

    response = urllib2.urlopen(‘网页地址’)

    print reponse. getcoed   获取 状态码 如果 200  表示获取成功


    查看全部
  • 查看全部
  • 基本构成。
    查看全部
  • urllib2实战演示
    查看全部
  • beautifulsoup安装与测试
    查看全部
  • 访问节点信息

    node,name

    node['href']

    node.get_text()

    查看全部
  • 搜索节点(find_all,find)

    soup.find_all('a')

    soup.find_all('a',href='/view/123.htm')

    soup.find_all('a',href='re.compile(r'/view/\d+\.htm'))

    soup.find_all('div',class_='abc',string='python')


    查看全部
  • 创建BeautifulSoup对象

    from bs4 import  BeautifulSoup

    #根据HTML网页字符串创建BeautifulSoup对象

    soup = BeautifulSoup(

                                html_doc,

                                'html.parser'

                                from_encoding='utf8'

                                )

    查看全部
  • 结构化解析-DOM树
    查看全部

举报

0/150
提交
取消
课程须知
本课程是Python语言开发的高级课程 1、Python编程语法; 2、HTML语言基础知识; 3、正则表达式基础知识;
老师告诉你能学到什么?
1、爬虫技术的含义和存在价值 2、爬虫技术架构 3、组成爬虫的关键模块:URL管理器、HTML下载器和HTML解析器 4、实战抓取百度百科1000个词条页面数据的抓取策略设定、实战代码编写、爬虫实例运行 5、一套极简的可扩展爬虫代码,修改本代码,你就能抓取任何互联网网页!

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!