`
小taomi_77
  • 浏览: 43101 次
  • 性别: Icon_minigender_1
  • 来自: 成都
文章分类
社区版块
存档分类
最新评论

简单分析爬虫中需要登陆的网站

阅读更多
在爬虫工作过程中经常会遇到需要登录的问题,面对这样的问题就需要用到模拟登录的相关方法。python提供了强大的url库,想做到这个并不难。那么今天我们就以登录京东为例,做一个简单的例子。
在进行实践之前得明白cookie的作用,cookie是某些网站为了辨别用户身份、进行session跟踪而储存在用户本地终端上的数据。因此我们需要用Cookielib模块来保持网站的cookie。要完整的获取一个需要登录网站的数据不只有cookie,还有代理IP的使用,一般的网站都设置有反爬机制,像京东这样的网站对IP的要求更高,在选择的代理的时候需要选择靠谱高效的,这里推荐亿牛云代理。使用过程简单方便,直接上代码示例:
from selenium import webdriver
    import string
    import zipfile

    # 代理服务器(产品官网 www.16yun.cn)
    proxyHost = "t.16yun.cn"
    proxyPort = "31111"

    # 代理验证信息
    proxyUser = "username"
    proxyPass = "password"

    def create_proxy_auth_extension(proxy_host, proxy_port,
                                   proxy_username, proxy_password,
                                   scheme='http', plugin_path=None):
        if plugin_path is None:
            plugin_path = r'D:/{}_{}@t.16yun.zip'.format(proxy_username, proxy_password)

        manifest_json = """
        {
            "version": "1.0.0",
            "manifest_version": 2,
            "name": "16YUN Proxy",
            "permissions": [
                "proxy",
                "tabs",
                "unlimitedStorage",
                "storage",
                "",
                "webRequest",
                "webRequestBlocking"
            ],
            "background": {
                "scripts": ["background.js"]
            },
            "minimum_chrome_version":"22.0.0"
        }
        """

        background_js = string.Template(
            """
            var config = {
                mode: "fixed_servers",
                rules: {
                    singleProxy: {
                        scheme: "${scheme}",
                        host: "${host}",
                        port: parseInt(${port})
                    },
                    bypassList: ["foobar.com"]
                }
              };

            chrome.proxy.settings.set({value: config, scope: "regular"}, function() {});

            function callbackFn(details) {
                return {
                    authCredentials: {
                        username: "${username}",
                        password: "${password}"
                    }
                };
            }

            chrome.webRequest.onAuthRequired.addListener(
                callbackFn,
                {urls: [""]},
                ['blocking']
            );
            """
        ).substitute(
            host=proxy_host,
            port=proxy_port,
            username=proxy_username,
            password=proxy_password,
            scheme=scheme,
        )

        with zipfile.ZipFile(plugin_path, 'w') as zp:
            zp.writestr("manifest.json", manifest_json)
            zp.writestr("background.js", background_js)

        return plugin_path

    proxy_auth_plugin_path = create_proxy_auth_extension(
        proxy_host=proxyHost,
        proxy_port=proxyPort,
        proxy_username=proxyUser,
        proxy_password=proxyPass)

    option = webdriver.ChromeOptions()

    option.add_argument("--start-maximized")

    # 如报错 chrome-extensions
    # option.add_argument("--disable-extensions")

    option.add_extension(proxy_auth_plugin_path)

    # 关闭webdriver的一些标志
    # option.add_experimental_option('excludeSwitches', ['enable-automation'])       

    driver = webdriver.Chrome(chrome_options=option)

    # 修改webdriver get属性
    # script = '''
    # Object.defineProperty(navigator, 'webdriver', {
    # get: () => undefined
    # })
    # '''
    # driver.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument", {"source": script})    



    driver.get("http://httpbin.org/ip")
这里我们选择使用的是Selenium模拟登陆,登陆后我们就可以正常的获取数据了。上述内容就是使用selenium怎么实现一个模拟登录功能并且加上代理IP获取数据,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备可以关注小编一起学习交流。
分享到:
评论

相关推荐

    简易Java网络爬虫

    在趣配音的爬虫项目中,我们可能需要将抓取到的配音作品信息有序地存储下来,以便后续分析和使用。 总结来说,简易Java网络爬虫涉及的主要知识点包括:使用Java进行HTTP请求,理解并运用HTML解析库Jsoup,掌握多...

    Python爬虫数据可视化分析大作业.zip

    虽然“UI”在描述中提及,但未提供具体子文件,可能是指用Python的Tkinter或Flask等框架创建一个简单的用户界面,让用户可以交互式地查看和分析爬取的数据。这需要掌握基本的GUI编程概念和控件使用。 6. **文件...

    使用网络爬虫request爬取全本小说网站

    内容概要 全本小说网络爬虫是一个自动化工具,用于从小说网站上抓取并下载小说的全本内容。该工具利用网络爬虫技术,通过模拟用户请求,获取...数据分析:在市场研究或内容分析中,需要大量小说文本作为数据源。 内容备

    需要登录才能抓取的新浪微博爬虫例子

    通过实践,你将能够创建一个适应于微博环境的爬虫,不仅限于新浪微博,其他类似需要登录的网站也可以参考此方法进行抓取。同时,也要注意遵守网站的robots.txt规则和相关法律法规,尊重数据的合理使用。

    网络爬虫—python和数据分析

    在实际抓取网页之前,需要合理设计爬虫程序,考虑到网站的robots.txt文件,该文件规定了爬虫可以访问和不可以访问的区域,这关系到爬虫的合法性和网站的友好性。同时,还需要注意不要对目标网站造成过大的负担,应...

    简单Python爬虫代码

    然而,实际的网络爬虫可能需要处理更复杂的情况,如登录、处理JavaScript、处理分页、避免被网站封禁等。为了实现这些功能,你可能需要学习更多的库,比如`Selenium`(用于处理JavaScript和模拟用户交互)、`Scrapy`...

    网络爬虫-Python和数据分析

    综上所述,网络爬虫是连接互联网和大数据分析的一个关键工具,而Python语言因其多方面的优势,在当前及未来在这一领域中的应用前景将更加广阔。通过学习网络爬虫和数据分析,不仅可以加深对互联网数据获取和处理的...

    简单的爬虫程序

    爬虫,或网络爬虫,是自动化抓取互联网信息的一种软件工具,广泛应用于数据分析、信息检索和网站维护等领域。在这个项目中,开发者构建了一个基础版本,能够执行基本的网页抓取任务,但其功能可能并不包括复杂的数据...

    简单的爬虫12

    6. **异常处理**:在网络爬虫中,考虑到网络不稳定性和可能出现的错误,异常处理是必不可少的。合理的异常处理可以确保程序在遇到问题时能够优雅地恢复或报告错误。 7. **延迟和重试策略**:为了避免对目标网站造成...

    简单的闲鱼爬虫.zip

    遵守规则: 为避免对网站造成过大负担或触发反爬虫机制,爬虫需要遵守网站的robots.txt协议,限制访问频率和深度,并模拟人类访问行为,如设置User-Agent。 反爬虫应对: 由于爬虫的存在,一些网站采取了反爬虫措施...

    基于python web streamlit开发的京东物品爬虫分析系统包括爬虫,数据预处理,文件管理,可视化,文本情感分析

    包括爬虫,数据预处理,文件管理,可视化,文本情感分析. 爬取:评论地址,爬取次数,爬取什么评论,爬取时间,保存名称 文件管理:爬取过程有问题或者查看数据,删除文件,重命名,下载文件,上传文件 处理:简单...

    python实现网络爬虫使用了第三方库beautifulsoup来解析网页文件,并且实现了cookie登录特定网站访问.zip

    在网络爬虫中,有时需要模拟用户登录以访问受限内容。cookie是服务器存储在客户端(浏览器)上的小数据块,用于保持会话状态。在Python中,我们可以使用`requests`库来管理cookie: 1. **设置cookie**:使用`...

    网络爬虫-Python和数据分析(中文)

    - 科学研究中的数据采集工具,适用于在线人类行为分析、社会网络分析等领域。 - 非法用途包括但不限于数据窃取、发送垃圾邮件等。 **发展阶段:** - 网页搜集:爬虫从给定的URL开始抓取网页。 - 建立索引:对抓取的...

    简单的python爬虫,代码完整

    在IT行业中,Python爬虫是获取网络数据的重要工具,尤其对于数据挖掘、网站分析和自动化任务有着不可忽视的作用。本资源提供了一个完整的Python2.7版本的简单网络爬虫代码,旨在帮助学习者理解和实践爬虫的基本原理...

    推荐了许多python爬虫实例,也推荐了用于练习的网站

    Python 爬虫是当前信息技术领域中的热门话题,掌握 Python 爬虫技术可以帮助开发者更好地爬取和处理网络数据,提高工作效率和数据分析能力。本资源摘要信息旨在为读者提供一个涵盖 Python 爬虫实例、练习资源、书单...

    医疗数据爬虫、简单病症分析及医疗资源推荐.zip

    遵守规则: 为避免对网站造成过大负担或触发反爬虫机制,爬虫需要遵守网站的robots.txt协议,限制访问频率和深度,并模拟人类访问行为,如设置User-Agent。 反爬虫应对: 由于爬虫的存在,一些网站采取了反爬虫措施...

    网络爬虫-Python数据分析

    例如,在爬取特定网站如瀚海星云时,如果页面链接有规律可循,比如每页链接递减固定数量,编写爬虫时可利用这些规律以完成整个网站数据的爬取。 在爬虫编程实践中,有时需要处理HTML页面结构,并利用工具如...

    Python爬虫-B站动漫数据分析与可视化

    资源中包含了爬虫代码、数据处理代码、数据分析代码,也包含了爬取数据集、可视化结果图,同时资源中也提供了一个对本项目进行简单介绍的readme文件,其中包含了对爬虫细节以及数据处理、数据分析、数据可视化的详细...

    网络爬虫-python和数据分析

    - **科学研究:** 在线人类行为研究、社交网络分析等领域需要大量网络数据,网络爬虫是获取这些数据的有效手段。 - **其他用途:** 如用于安全审计、市场调研等。 #### 二、编写爬虫的技术选型 选择合适的编程语言...

    豆瓣简易爬虫+情感分析.zip

    遵守规则: 为避免对网站造成过大负担或触发反爬虫机制,爬虫需要遵守网站的robots.txt协议,限制访问频率和深度,并模拟人类访问行为,如设置User-Agent。 反爬虫应对: 由于爬虫的存在,一些网站采取了反爬虫措施...

Global site tag (gtag.js) - Google Analytics