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

Python开发简单爬虫

蚂蚁帅帅 全栈工程师
难度初级
时长 1小时14分
学习人数
综合评分9.67
646人评价 查看评价
9.9 内容实用
9.6 简洁易懂
9.5 逻辑清晰
  • 形成循环 知道完成任务后形成有价值的数据并输出

    查看全部
  • 简单的爬虫结构

     以及运行流程

    查看全部
  • 爬虫系统设计

    查看全部
  • 要加强练习~https://img1.sycdn.imooc.com//5d0b90cf000153b603950107.jpg

    https://img1.sycdn.imooc.com//5d0b91070001d74d04990147.jpg


    https://img1.sycdn.imooc.com//5d0b91070001911306820204.jpg


    查看全部
  • 使用python3
    1、
    from urllib import request as urllib2
    import http.cookiejar
    2、
    所有的print语句后需要加()
    3、
    cj=http.cookiejar.CookieJar()

    查看全部
  • urllib2的三种下载网页的方法:

    1、给定URL,传送给urllib2.urlopen(url),实现网页的下载。对应代码为:

    import urllib2

    #直接请求

    response=urllib2.urlopen('http://www.baidu.com')

    #获取状态码,如果是200表示获取成功

    print response.getcode()

    #读取内容

    cont=response.read()

    2、添加data(向服务器提交需要用户输入的)、http header(向服务器提交http的头信息)此时urllib2.urlopen以request作为参数发送网页请求,对应代码:

    import urllib2

    #创建request对象

    request=urllib2.request(url)

    #添加数据 例如赋值a=1

    request.add-data('a',‘1’)

    #添加http的header  例如把爬虫伪装成Mozilla的浏览器

    request.add-header(‘User-Agent’,‘Mozilla/5.0’)

    #发送请求获取结果

    response=urllib2.urlopen(request)

    3、例如有些网页需要用户的登陆才能访问,需要添加cookie的处理,使用HTTPCookieProcessor;例如有些网页需要代理才能访问,使用ProxyHandler ; 例如有些网页的协议是使用HTTPS加密访问,使用HTTPSHandler ;例如有些网页的URL可以自动的相互跳转关系,使用HTTPRedirectHandler。这些handler传送给urllib2 build opener.因此urllib2具有场景处理能力。然后依然使用urllib2的urlopen的方法来存储一个URL/request来实现网页的下载。


    对应代码:(例如增强cookie的处理)

    #导入urllib2和cookielib这两个模块

    import urllib2,cookielib

    #创建cookie容器

    cj=cookielib.CookieJar()

    #以Cookie Jar为参数生成一个headler,再传给urllib2.build-opener方法来生成一个opener对象。就是创建opener。

    opener=urllib2.build-opener(urllib2.HTTPCookieProcessor(cj))

    #给urllib2安装opener

    urllib2.install-opener(opener)

    #使用带有cookie的Urllib2访问网页

    response=urllib2.urlopen("http://www.baidu.com")


    查看全部
  • 网页下载器(核心):将互联网的URL对应网页下载到本地的工具

    (目的是为了将网页下载到本地才能够进行后期的分析和处理)

    网页下载器类似于网页浏览器,会将URL对应的互联网网页以HTML的形式下载到本地,存储成本地文件或者本地字符串,然后进行后期的分析和处理。

    网页下载器:

    urllib2:Python官方基础模块(直接的URL下载或者向网页提交一些用户输入的数据 甚至支持登陆网页的cookie处理 和需要代理访问的代理处理等这些增强功能)

    requests:更强大的第三方软件

    urllib2是本课程实践

    查看全部
  • Python爬虫URL管理器的实现方式(三种)

    (一)将已爬取或和待爬取的URL集合存放在内存中,用Python语言的话,可以将这两个URL集合放在set()数据结构中,Python的set结构可以自动去除重复的内容,

    (二)将URL存放在关系数据库中,建立一个表,有两个字段(url,is_crawled),is_crawled字段标志这个URL的状态是待爬取还是已爬取。

    (三)将URL存放在一个缓存数据库中,比如redis,redis本身支持set的结构,所以我们可以将待爬取和已爬取存储在两个set中。

    大型公司适用缓存数据库

    个人、小型公司适用内存,不够用时再用关系型数据库

    实战演习用python的set

    https://img1.sycdn.imooc.com//5d0b35250001ff8608040466.jpg

    查看全部
  • URL管理器的作用:防止重复抓取、循环抓取。

    URL管理器的功能:

    3、判断是否还有带爬取URL

    4、获取带爬取URL

    1、判断待添加的URL是否本来就在容器中

    2、添加心得URL到待爬取集合

    5、将URL从待爬取移动到已爬取集合

    查看全部
  • 循环结束后输出价值数据成我们需要的格式。https://img1.sycdn.imooc.com//5d0b0d4c00013dfe07810458.jpg

    查看全部
  • 爬虫调度段(启动、停止、监视爬虫)

    三大模块:URL管理器(管理所有URL数据)中取出待爬取的URL,传送给网页下载器(URL指定的网页下载,存储成字符串),将字符串传送给网页解析器(解析出有价值的数据),再到URL管理器。

    每一个网页都有指向其他网页的URL,这些URL被解析出来之后,可以补充到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())
    
    print('获取指定链接')
    link_node = soup.find('a',href = 'http://example.com/elsie')
    print(link_node.name,link_node['href'],link_node.get_text())
    
    print('正则匹配')
    link_node = soup.find('a',href = re.compile(r"cie"))
    print(link_node.name,link_node['href'],link_node.get_text())
    
    print('获取p段落文字')
    link_node = soup.find('p',class_ = 'title')
    print(link_node.name,link_node.get_text())


    查看全部
  • import urllib.request
    from http import cookiejar
    
    url = 'http://www.baidu.com'
    print('第一种方法')
    response1 = urllib.request.urlopen(url)
    print(response1.getcode())
    print(len(response1.read()))
    
    print('第二种方法')
    request = urllib.request.Request(url)
    request.add_header('user-agent','Mozilla/5.0')
    response2 = urllib.request.urlopen(request)
    print(response2.getcode())
    print(len(response2.read()))
    
    print('第三种方法')
    cj = cookiejar.CookieJar()
    opener = urllib.request.build_opener(urllib.request.HTTPCookieProcessor(cj))
    urllib.request.install_opener(opener)
    response3 = urllib.request.urlopen(url)
    print(response3.getcode())
    print(cj)
    print(response3.read())


    查看全部
  • 爬虫
    查看全部
  • 五个模块: 

    爬虫总调度程序 spider_main url

    管理器       url_manage 

    网页下载器      html_downloader 

    网页解析器      html_parser 

    输出            html_outputer

    查看全部
    1 采集 收起 来源:调度程序

    2019-05-25

举报

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

微信扫码,参与3人拼团

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

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