2/2 数据获取:网络数据的获取
o. 抓取
1. urllib内建模块
— urllib.request
2. Request第三方库
**Request库:**
Requests 库是最简单、方便和人性化的Python HTTP第三方库。Requests 官网:http://www.python-requests.org/ 。
注:有的网站有自己的爬虫协议,如豆瓣网(https://book.douban.com/robots.txt), 有“robots.txt”就说明存在。
基本方法 | 说明 |
---|---|
request.get() | 请求获取指定URL位置的资源,对应HTTP协议的GET方法。 |
发送请求获得一个Response对象,这个对象包含Resquest请求信息和服务器的Response响应信息,而Requests会自动解码来自服务器的信息。假设响应内容是二进制形式的,可以通过re.content进行解码,re.text自动推测文本编码并进行解码,re.encoding修改文本编码。
import requestsr = requests.get('https://book.douban.com/subject/1084336/comments/')r.status_code
Out[4]: 200r.text
import requests
re = requests.get('http://money.cnn.com/data/dow30')
print(re.text)
3. Scrapy框架
o. 解析
1. BeautifulSoup库
BeautifulSoup是一个可以从HTML或XML文件中提取数据的Python库。官方网站:https://www.crummy.com/software/BeautifulSoup/bs4/doc 。
BeautifulSoup对象 | 说明 |
---|---|
Tag | HTML或XML文档中的标签;Tag属性的操作和字典一样;Tag对象最重要的属性包括name(获得名字)和attribute() |
BeautifulSoup | 大部分内容都是Tag |
NavigableString | Tag当中的字符串。NavigableString对象可以用string属性来表示,取Tag中包含的非属性的字符串。 |
Comment | NavigableString的一个子类 |
from bs4 import BeautifulSoup
markup = '<p class="title"><b>The Little Prince</b></p>' # 定义一个字符串
soup = BeautifulSoup(markup, 'lxml') # 生成一个BeautifulSoup对象的soupsoup.b # 任何的标签内容都可以用“BeautifulSoup对象.tag”形式访问得到
Out[22]: <b>The Little Prince</b>type(soup.b) #查看类型
Out[23]: bs4.element.Tag
tag = soup.ptag.name # 通过name属性获得名字
Out[25]: 'p'tag.attrs
Out[26]: {'class': ['title']}tag['class'] # 通过字典形式获得属性
Out[27]: ['title']
tag.string # NavigableString对象可以用string属性来表示
Out[28]: 'The Little Prince'type(tag.string)
Out[29]: bs4.element.NavigableString
soup.find_all('b') # 寻找所有b标签的内容
Out[30]: [<b>The Little Prince</b>]soup.find()# 只需要找第一个标签内容
Out[31]: <html><body><p class="title"><b>The Little Prince</b></p></body></html>
2. re模块(正则表达式模块)
re正则表达式模块进行各类正则表达式处理。参考网站:https://docs.python.org/3.5/library/re.html 。
2/2 数据获取:网络数据的获取相关推荐
- 股票应用开发——网络数据的获取(一)
一.背景 之前很少写技术博客一方面是怕自己的技术不到家,把大家带到坑里:另一方面就是自己太懒了.现在鼓起勇气把自己的心得体会以及项目的实现思路展现给大家.希望和大家一起学习一起进步! 下面说一下 ...
- 如何通过网络数据的获取,做出这些数据分析项目?
作者 | AlfredWu 来源 | Alfred数据室 最近有很多人在问,我是如何收集网络的数据,如何进行数据处理.数据分析以及可视化呈现的. 也有人问的更具体,关于Python数据分析的一些问题. ...
- matlab导入桌面excel数据库,matlab导入excel数据_excel怎么导入网络上的数据?_excel导入网络数据...
网络上的数据怎么导到excel中.有方法是直接复制然后粘贴到excel中,但是网络上直接复制过来的,可能不能直接进去下一步编辑.因为复制过来的每个词后面都有空格,是不能进行直接计算,连最基本的求和都不 ...
- iOS 优雅的处理网络数据,你真的会吗?不如看看这篇.
本文同步发表于我的微信公众号,扫一扫文章底部的二维码或在微信搜索 HelloWorld杰少 即可关注. 相信大家平时在用 App 的时候, 往往有过这样的体验,那就是加载网络数据等待的时间过于漫长,滚 ...
- Swift实战-豆瓣电台(三)获取网络数据
原文:Swift实战-豆瓣电台(三)获取网络数据 观看地址:http://v.youku.com/v_show/id_XNzMwMzQxMzky.html 这节内容,我们先说了怎么将storyboar ...
- android—获取网络数据
取网络数据主要靠发交易(或者说请求,接口等),而这些交易由java中的网络通信,HttpURLConnection和HttpClient实现,以下是具体例子. 大家都知道,网络通信,发送请求有两种方式 ...
- android天气查询(二)之网络json数据的获取
前面一篇文章介绍了如何使用ksoap获取天气信息,但是使用的网络资源受到了限制,所以我们这里会采用第二种方法,可以无限制的获取.http://m.weather.com.cn/data/1010101 ...
- 安卓 原生okhttp使用get与post获取网络数据
网址 https://square.github.io/okhttp/ 配置 依赖 在module的build.gradle中: implementation 'com.squareup.okhttp ...
- java外部接口图解_java代码实现访问网络外部接口并获取数据的工具类详解
java代码实现访问网络外部接口并获取数据的工具类 工具类代码,可以直接copy使用 package com.yqzj.util; import org.apache.log4j.LogManager ...
最新文章
- 数字图像处理:第二十三章 基于内容的图象与视频检索
- Scala学习(二)--- 控制结构和函数
- 再学 GDI+[60]: TGPGraphics.SetSmoothingMode - 绘图质量
- [功能发布]Excel与PowerBI互通互联升级版连接SSAS和AzureAS
- 数据科学 IPython 笔记本 8.4 简单的折线图
- 搜索引擎蜘蛛及网站robots.txt文件详解[转载]
- 初学者C语言输入输出挖坑填补处须知
- python os 的坑_Python踩坑之旅其二裸用os.system的原罪
- 安装FileFormatConverters,出现错误“无法使用此产品的安装源。请确认安装源存在,并且您可以访问它”
- 绕过广告拦截插件的解决方案
- html 文件 转换成mp4视频,[swf转视频]一个带有Play播放按钮的swf文件怎么转换成mp4视频...
- 【上汽零束SOA】云管端一体化SOA软件平台系列介绍之二:数字架构篇
- Qt之小学徒学习记录分享
- Python open和with open的区别
- 研究了一晚上,填补了中国古代神话中的一些空白
- 微信对账单 java_java下载微信对账单,实现与微信实收对账和日清日结对账
- DWZ表单验证规则一览表
- Presto 0.224个人笔记
- 图片压缩的正确打开方式
- vanilla-tilt.js: 一个平滑的3D倾斜javascript库。
热门文章
- python安装成功第三方库但import出问题_解析pip安装第三方库但PyCharm中却无法识别的问题及PyCharm安装第三方库的方法教程...
- 手电筒java_Java鼠标“手电筒”效果如何?
- c语言字符密码验证码,c语言下的学生管理系统(含密码加密和验证码).docx
- mysql创建索引小案例
- hbase查询_【从零单排HBase】HBase高性能查询揭秘
- 进制转换问题---例如把26进制转为10进制
- 剑指offer 顺时针打印矩阵
- python科学计算笔记(三)pandas中Series和DataFrame练习
- 推荐系统(工程方向)-策略平台
- Elasticsearch检索分类详解