美文网首页编程地带
黑板课爬虫闯关 - 第一关

黑板课爬虫闯关 - 第一关

作者: MA木易YA | 来源:发表于2018-11-27 19:17 被阅读0次

第一关

image.png

主要是构建链接,令它一直获取网页,知道获取到除了输入数字以外的内容,提供两种方式,原理都差不多,都是主要用到正则表达式和requests进行获取,小编用的是python3哦
one.py

import requests
import re
from lxml import etree

def get_Html(url):
    headers = {
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3493.3 Safari/537.36"
    }
    req = requests.get(url, headers=headers, timeout=20)
    # print(req.content.decode('utf-8'))
    return req.content.decode('utf-8')

def next():
    html = get_Html(url)
    number = re.findall('<h3>.*?(\d+)</h3>', html)
    while number:
        next_url = "http://www.heibanke.com/lesson/crawler_ex00/%s" % number[0]
        print(next_url)
        html = requests.get(next_url).content.decode('utf-8')
        number = re.findall(r'<h3>.*?(\d+)\.', html)
    res = re.findall('<a href="(.*?)" class', html)
    print("下一关的连接:http://www.heibanke.com:%s" %res[0])


if __name__ == '__main__':
    url = "http://www.heibanke.com/lesson/crawler_ex00/"
    next()

two.py

import requests
import re
import datetime

if __name__ == '__main__':

    begin_time = datetime.datetime.now()

    url = 'http://www.heibanke.com/lesson/crawler_ex00/'
    new_url = url
    num_re = re.compile(r'<h3>[^\d<]*?(\d+)[^\d<]*?</h3')
    while True:
        print('正在读取网址 ', new_url)

        html = requests.get(new_url).text
        num = num_re.findall(html)
        if len(num) == 0:
            new_url = 'http://www.heibanke.com' + re.findall(r'<a href="(.*?)" class', html)[0]
            break;
        else:
            new_url = url + num[0]
    print('最后通关的的网址是%s, 耗时%s' % (new_url, (datetime.datetime.now() - begin_time)))

  • 更多代码详情参考我的Github

相关文章

  • 黑板课爬虫闯关 - 第一关

    第一关 主要是构建链接,令它一直获取网页,知道获取到除了输入数字以外的内容,提供两种方式,原理都差不多,都是主要用...

  • 黑板客爬虫闯关通关

    黑板客爬虫闯关通关 爬虫学的好 牢房进的早 前言 黑板客爬虫闯关共5关 http://www.heibanke.c...

  • 黑板客爬虫闯关

    第一关:url: http://www.heibanke.com/lesson/crawler_ex00/打开网页...

  • 黑板课爬虫闯关 - 第四关

    第四关增加了登录验证和密码获取,主页面如下: 但是想要进入主页面需要先登录: 进去后可以随便试下密码,果然错误,然...

  • 黑板课爬虫闯关 - 第二关

    第二关比较简单,只是在密码上一个一个循环即可,直接上代码,注意在传输数据时用到的请求方法是POST,其他的都比较基...

  • 黑板课爬虫闯关 - 第五关

    这里是黑板课爬虫闯关第五关 同样的需要登陆 在前面的基础上,虽然没有第四关那么复杂,但这里增加了验证码环节,这个很...

  • 【爬虫】通关黑板客爬虫闯关游戏

    最近看到的一个关于Python爬虫的闯关游戏,手痒,试他一试。 第一关 地址:http://www.heibank...

  • Python 爬虫闯关(第二关)

    在上次第一关爬虫闯关成功后,我们会得到第二关的地址:http://www.heibanke.com/lesson/...

  • 黑板课爬虫闯关 - 第三关

    第三关相对之前的增加了登录这一块,首先需要先进行模拟登录,然后获取到cookie里面的登录验证csrf才能进行数据...

  • Python 爬虫闯关(第一关)

    在学习爬虫时,遇到了一个有意思的网站,这个网站设置了几个关卡,需要经过爬虫进行闯关,随着关卡的网后,难度不断增加,...

网友评论

    本文标题:黑板课爬虫闯关 - 第一关

    本文链接:https://www.haomeiwen.com/subject/bosnqqtx.html