python获取数据的方法有哪些 |
您所在的位置:网站首页 › 获取数据的常用方法 › python获取数据的方法有哪些 |
常见的分类 分类方式一 1.不用登录就能爬取的网站, 2.需要先登录的网站 这一类网站又可以分为: 01.只需输入帐号密码、 02.除了帐号密码还需输入或点击验证码等类型。 01.只需输入帐号密码、 只需要输入账号密码的情况 介绍模拟登录常用的 3 种方法。 001.POST 请求方法:需要在后台获取登录的 URL并填写请求体参数,然后 POST 请求登录,相对麻烦; 002.添加 Cookies 方法:先登录将获取到的 Cookies 加入 Headers 中,最后用 GET 方法请求登录,这种最为方便; 003.Selenium 模拟登录:代替手工操作,自动完成账号和密码的输入,简单但速度比较慢 分类方式二 静态页面: 静态页面的时候直接查看response一般就是网页的全部代码 动态页面其实是相对于静态页面而言的 客户端语言改变页面的 HTML 和 CSS 元素 通常的手法都是监听、抓包、分析js文件 爬虫处理动态页面的两种方式 01.-- 逆向工程 模拟发包。 稳定性和效率 Ajax请求的具体链接,直接得到Ajax请求得到的数据 AJAX 使用的 XMLHttpRequest 的对象与服务器通信 JavaScript 中调用 XMLHttpRequest 对象。 HTTP 请求由 XMLHttpRequest 对象发送到服务器。 XMLHttpRequest 对象用于和服务器交换数据 02.--用现成的包操作浏览器 --selenium模拟浏览器 ghost.py 用 webkit 我们需要有pyqt或者是PySide 一般就是用 Selenium + PhantomJS Selenium 测试代码输入操作给 webdriver webdriver 再去控制浏览器,最终达到的效果就是代码实现对浏览器的操作 下载浏览器驱动: 例如火狐的 FirefoxDriver geckodriver 谷歌的 ChromeDriver IE的驱动 IEdriver IEDriverServer 三大浏览器驱动 driver webdriver.Chrome() 示例代码 from selenium import webdriver browser = webdriver.Chrome() browser.get('http://www.baidu.com/') 启动火狐浏览器 from selenium import webdriver browser = webdriver.Firefox() browser.get('http://www.baidu.com/') 启动IE浏览器 http://selenium-release.storage.googleapis.com/index.html # #设置环境变量 # driver=webdriver.Ie(executable_path="./../lib/IEDriverServer.exe") # IEDriverServer 的版本号和Selenium的版本号一定要一致 from selenium import webdriver browser = webdriver.Ie() browser.get('http://www.baidu.com/') 具体操作: 01.找到 POST 请求的 URL 02.构造参数构造 利用 Requests.post 方法请求登录网站 import requests headers = {'User-Agent': 'User-Agent:Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)'} data = {'identity':'@@.com', 'password':'test2020'} url ='https://www.' session = requests.Session() session.post(url,headers = headers,data = data) response = session.get('http://rad',headers = headers) print(response.status_code) print(response.text) import requests headers = { 'User-Agent': 'User-Agent:Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)', 'Cookie': '你的cookie',} url = 'https://www.ion=' session = requests.Session() response = session.get('http://rent', headers=headers) print(response.status_code) 网页相关内容 Referer:浏览器通过此来判断你从哪一个网页跳转过来 referer: https://www.cnblogs.com/ User Agent 中文名为用户代理,是Http协议中的一部分,属于头域的组成部分,User Agent也简称UA。它是一个特殊字符串头, 是一种向访问网站提供你所使用的浏览器类型及版本、操作系统及版本、浏览器内核、等信息的标识 浏览器识别 User-Agent:Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0); Cookie 指的是当你浏览某网站时,网站存储在你电脑上的一个小文本文件,伴随着用户请求和页面在 Web 服务器和浏览器之间传递。 它记录了你的用户ID,密码、浏览过的网页、停留的时间等信息,用于用户身份的辨别 HTTP协议是无状态 Cookie 正是这样的一段随HTTP请求一起被传递的额外数据,用于维护浏览器和服务器的会话 Cookie是基于浏览器的 Http Cookie Cookie的时间由服务器的设置决定 第一方Cookie和第三方Cookie 常用的包 lxml Python XML 库 Requests: 让 HTTP 服务人类 Pandas(python强大的数据处理库) from selenium import webdriver 参考 python+Selenium用ie打不开浏览器解决办法 https://blog.csdn.net/qq_31857075/article/details/100748456 详解爬虫模拟登陆的三种方法 https://blog.csdn.net/zhusongziye/article/details/91353222 |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |