继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

【学习打卡】第4天 Scrapy打造搜索引擎 .cnblogs模拟登陆

残梦ming
关注TA
已关注
手记 26
粉丝 2
获赞 0

课程名称:Scrapy打造搜索引擎(分布式爬虫)


课程章节:.cnblogs模拟登陆


主讲老师:bobby


课程内容:

今天学习的内容包括:.cnblogs模拟登陆


课程收获:

    1.Selenium(Web自动化工具)

        1.selenium介绍

            Selenium是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE(7, 8, 9, 10, 11),Mozilla FirefoxSafariGoogle ChromeOpera,Edge等。这个工具的主要功能包括:测试与浏览器的兼容性——测试应用程序看是否能够很好得工作在不同浏览器和操作系统之上。测试系统功能——创建回归测试检验软件功能和用户需求。支持自动录制动作和自动生成.Net、JavaPerl等不同语言的测试脚本。

        2.安装selenium、undetected-chromedriver

            http://img3.mukewang.com/62f0651700017a4421541171.jpg

            http://img3.mukewang.com/62f0652b0001d1e624001288.jpg

        3.使用

            

# spider运行起来,URL都会从此方法开始
def start_requests(self):
    # 入口可以模拟登录拿到cookie,selenium控制浏览器会被一些网站识别出来(例如:知乎、拉勾网)

    # 实例化一个浏览器
    import undetected_chromedriver.v2 as uc
    chrome_driver = r"E:\Python\chromedriver.exe"
    # 后面讲解selenium的时候会下载chromedriver.exe
    browser = uc.Chrome(executable_path=chrome_driver)
    browser.get("https://account.cnblogs.com/signin")
    # 自动化输入、自动化识别滑动验证码并拖动整个自动化过程
    input("回车继续:")  # 等待浏览器驱动加载完成

    # 手动登录后获取cookie值
    cookies = browser.get_cookies()
    cookie_dict = {}  # 将获取的cookie值转变为dict字典类型数据
    for cookie in cookies:
        cookie_dict[cookie['name']] = cookie['value']

    # 爬虫的时候不要过快,建议使用debug模式进行运行,否则网站会监测cookie值,然后禁止该cookie

    for url in self.start_urls:
        # 将cookie交给scrapy,那么后序的请求会沿用之前请求的cookie值吗?
        headers = {
            # headers将访问伪装成浏览器,防止被反爬
            'user-agent': 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 '
                          '(KHTML, like Gecko) Chrome/101.0.4951.64 Mobile Safari/537.36'
        }
        yield scrapy.Request(url, cookies=cookie_dict, headers=headers, dont_filter=True)




2.查看博客网新闻具体信息页面时需要事先登录

    1.测试——假如未登录,直接查看新闻详情页面会发生什么?

        http://img.mukewang.com/62f065b60001492920100875.jpg

        http://img.mukewang.com/62f065c400013ea524001288.jpg

        注:user-agent是什么?

            http://img1.mukewang.com/62f065d600018df112130844.jpg




3.测试使用

    1.运行报错

        http://img4.mukewang.com/62f065fe0001aa1e23331041.jpg

        http://img3.mukewang.com/62f0661c00014fbc22900278.jpg

        提示:入口文件中需要加if __name__ == '__main__':

            http://img1.mukewang.com/62f066590001ae4816260723.jpg

    

    2.jobbole.py代码

        http://img2.mukewang.com/62f06685000131e714640943.jpg

        http://img4.mukewang.com/62f066910001197014600789.jpg

        http://img3.mukewang.com/62f066a000012cda14630624.jpg


    3.再次debug

        http://img.mukewang.com/62f066c60001fb7924001288.jpg

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP