Pythonweb采集
一.访问页面
import webbrowser
webbrowser.open('http://www.baidu.com/')
pip3 install requests
import requests
res = requests.get('http://www.gutenberg.org/cache/epub/1112/pg1112.txt')
res.status_code == requests.codes.ok #返回真假
len(res.text) #变量保存
print(res.text[:250])
res.raise_for_status() #下载出错抛出异常,成功则不返回
playFile = open('a.txt', 'wb') #写入二进制文件,保存Unicode编码
for chunk in res.iter_content(100000): #指定字节数
playFile.write(chunk)
playFile.close()
pip3 install sqlalchemy
import sqlalchemy as sa
conn = sa.create_engine('sqlite://')
meta = sa.MetaData()
zoo = sa.Table('zoo', meta,
sa.Column('critter', sa.String, primary_key=True),
sa.Column('count', sa.Integer),
sa.Column('damages', sa.Float)
)
meta.create_all(conn)
conn.execute(zoo.insert(('bear', 2, 1000.0)))
conn.execute(zoo.insert(('weasel', 1, 2000.0)))
result = conn.execute(zoo.select()) #类似select *
rows = result.fetchall()
print(rows)
#web
import urllib.request as ur
url = 'http://www.iheartquotes.com/api/v1/random'
conn = ur.urlopen(url)
print(conn)
data = conn.read() #获取网页数据
print(data)
conn.status #状态码
print(conn.getheader('Content-Type')) #数据格式
for key, value in conn.getheaders(): #查看所有http头
print(key, value)
pip3 install requests
import requests
url = 'http://www.iheartquotes.com/api/v1/random'
resp = requests.get(url)
resp
<Response [200]>
print(resp.text)
二.页面过滤
pip3 install beautifulsoup4
import requests,bs4
res = requests.get('http://nostarch.com')
res.raise_for_status()
noStarchSoup = bs4.BeautifulSoup(res.text)
exampleFile = open('example.html')
exampleSoup = bs4.BeautifulSoup(exampleFile)
soup.select('p #author')
soup.select('p')[0] #只取第一个放里面
xx.get('id') #返回id的值
三.CSS选择器例子

四.实际例子
example.html
<!-- This is the example.html example file. -->
<html><head><title>The Website Title</title></head>
<body>
<p>Download my <strong>Python</strong> book from <a href="http://
inventwithpython.com">my website</a>.</p>
<p class="slogan">Learn Python the easy way!</p>
<p>By <span id="author">Al Sweigart</span></p>
</body></html>
#过滤文件的id
import bs4
exampleFile = open('example.html') #打开到对象
exampleSoup = bs4.BeautifulSoup(exampleFile,features="html.parser")
elems = exampleSoup.select('#author') #找寻id元素,返回列表 tag对象到变量
print(type(elems))
print(type(elems[0]))
print(len(elems)) #看有几个匹配结果
print(elems[0].getText()) #返回第一个结果
print(str(elems[0])) #返回字符串,包含标签和文本
print(elems[0].attrs) #返回字典ID和值
#循环输出
import bs4
exampleFile = open('example.html') #打开到对象
exampleSoup = bs4.BeautifulSoup(exampleFile,features="html.parser")
elems = exampleSoup.select('p')
for i in range(len(elems)):
print(str(elems[i]))
print(elems[i].getText())
Pythonweb采集的更多相关文章
- C#+HtmlAgilityPack+XPath带你采集数据(以采集天气数据为例子)
第一次接触HtmlAgilityPack是在5年前,一些意外,让我从技术部门临时调到销售部门,负责建立一些流程和寻找潜在客户,最后在阿里巴巴找到了很多客户信息,非常全面,刚开始是手动复制到Excel, ...
- 再谈C#采集,一个绕过高强度安全验证的采集方案?方案很Low,慎入
说起采集,其实我是个外行,以前拔过阿里巴巴的客户数据,在我博客的文章:C#+HtmlAgilityPack+XPath带你采集数据(以采集天气数据为例子) 中,介绍过采集用的工具,其实很Low的,分析 ...
- iOS从零开始学习直播之2.采集
直播的采集由采集的设备(摄像头.话筒)不同分为视频采集和音频采集,本篇文章会分别介绍. 1.采集步骤 1.创建捕捉会话(AVCaptureSession),iOS调用相机和话筒之前都需要创建捕 ...
- 让OMCS支持更多的视频采集设备
有些OMCS用户在他的系统使用了特殊的视频采集卡作为视频源(如AV-878采集卡),虽然这些采集卡可以虚拟为一个摄像头,但有些视频采集卡需要依赖于自带了sdk才能正常地完成视频采集工作.在这种情况下, ...
- NodeJs+http+fs+request+cheerio 采集,保存数据,并在网页上展示(构建web服务器)
目的: 数据采集 写入本地文件备份 构建web服务器 将文件读取到网页中进行展示 目录结构: package.json文件中的内容与上一篇一样:NodeJs+Request+Cheerio 采集数据 ...
- NodeJs+Request+Cheerio 采集数据
目的:采集网站文章. 两个依赖项: request :https://github.com/request/request cheerio:https://github.com/cheeriojs/c ...
- Hawk 3. 网页采集器
1.基本入门 1. 原理(建议阅读) 网页采集器的功能是获取网页中的数据(废话).通常来说,目标可能是列表(如购物车列表),或是一个页面中的固定字段(如JD某商品的价格和介绍,在页面中只有一个).因此 ...
- 火车头dede采集接口,图片加水印,远程图片本地化,远程无后缀的无图片本地化
<?php /* [LocoySpider] (C)2005-2010 Lewell Inc. 火车采集器 DedeCMS 5.7 UTF8 文章发布接口 Update content: 图片加 ...
- STM32F412应用开发笔记之三:SPI总线通讯与AD采集
本次我们在NUCLEO-F412ZG试验模拟量输入采集.我们的模拟量输入采用ADI公司的AD7705,是一片16位两路差分输入的AD采集芯片.具有SPI接口,我们将采用SPI接口与AD7705通讯.两 ...
随机推荐
- Python使用cx_Oracle模块操作Oracle数据库--通过sql语句和存储操作
https://www.jb51.net/article/125160.htm?utm_medium=referral Python使用cx_Oracle调用Oracle存储过程的方法示例 http ...
- 0-pyqt介绍
1.QT 的特点 2.QT的历史 3.搭建pyQT的开发环境 python pyqt包 pycharm 4.搭建pyQT第一个应用 必须使用两个类:QApplication和QWidget.都在P ...
- WinRAR下载
https://www.win-rar.com 垃圾7Z有的解压不了.
- 数值分析:矩阵奇异值分解(Numpy实现)
1. 奇异值分解(SVD) (1)奇异值分解 已知矩阵\(\bm{A} \in \R^{m \times n}\), 其奇异值分解为: \[\bm{A} = \bm{U}\bm{S}\bm{V}^T ...
- Codeforces 575A - Fibonotci
题面传送门 题意: 给出 \(s_0,s_1,s_2,\dots,s_{n-1}\),对于 \(i\geq n\),有 \(m\) 个 \(s_i\) 满足 \(s_i\neq s_{i\bmod n ...
- Codeforces 306D - Polygon(随机化+乱搞)
Codeforces 题目传送门 & 洛谷题目传送门 中考终于结束了--简单写道题恢复下状态罢. 首先这一类题目肯定没法用一般的方法解决,因此考虑用一些奇淫的乱搞做法解决这道题,不难发现,如果 ...
- mysql_sql查性能语句
mysql> SHOW PROCESSLIST; +----+--------+----------------------+-------+-------------+--------+--- ...
- Golang使用validator进行数据校验及自定义翻译器
Golang使用validator进行数据校验及自定义翻译器 包下载:go get github.com/go-playground/validator/v10 一.概述 在接口开发经常会遇到一个问题 ...
- Linux升级命令yum upgrade和yum update的区别
Linux升级命令有两个分别是yum upgrade和yum update, 这个两个命令是有区别的: yum -y update 升级所有包同时也升级软件和系统内核 yum -y upgrade 只 ...
- Linux-root管理员创建新用户
Linux 系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统.用户的账号一方面可以帮助系统管理员对使用系统的用户进行 ...