Python 爬虫学习2 向网页提交数据
2016-04-14 20:57
951 查看
看了极客学院学习单线性爬虫的视频,觉得对爬虫的了解更加深入
下面我稍稍对爬取网页数据的方式做了一下小结
下面是要爬取数据的网址
日语学习网 http://jp.tingroom.com/yuedu/yd300p/
向网页提交数据 -- get 和 post
get和post各有什么作用
get 从服务器上获取数据
post 是向服务器传送数据
get 通过构造URL中的参数来是实现功能
post 将数据放在header提交数据
是通过get方式还是post方式来实现爬取数据必须根据网页,可通过审查元素network来查看
如下图:查看 http://jp.tingroom.com/yuedu/yd300p/
可以看到该网址可以通过get方式来爬取数据
下面是我爬取数据的一个例子
第一步,首先要导入要用到的模块
import
requests
import re
import sys
reload(sys)
sys.setdefaultencoding("gb18030") # 编码转换 强制转换为gb18030 str类型
type = sys.getfilesystemencoding()
header = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36'}
## 右击审查元素 network下 request headers 如下图:
# User-Agent 模拟浏览器来下载数据
第二步,通过get来获取数据
html = requests.get('http://jp.tingroom.com/yuedu/yd300p/',headers=header) #调用header
html.encoding = 'utf-8'
#print html.text
下面是利用正则表达式来查找日文,输出
title=re.findall('color:#666666;">(.*?)</span>',html.text,re.S) ## 查找日文
for each
in title: # color:#666666;"> 及 </span> 通过审查元素Elements来查看
printeach ## 打印日文
chinese = re.findall('color: #039;">(.*?)</a>',html.text,re.S) ## 查找中文
for each
in chinese:
print each ## 打印中文
结果如下:
如何通过post来获取数据?
通过审查元素来查看一个网址是get还是post来获取数据
下面是用post爬取数据的方法
import
requests
import re
url = 'https://www.crowdfunder.com/browse/deals&template=flase'
#html= requests.get(url).text
#print html.text
## 创建了一个字典
data = {'entities_only':'true',
'page':'1' # 网址第几页,可以变动
}
html_post = requests.post(url,data=data) # 利用post获取网页数据
title = re.findall('"card-title">(.*?)</div>',html_post.text,re.S)
##
<card-title> </div>通过审查元素Elements来查看,不同网页数据匹配不同
for
eachin title:
print each
下面我稍稍对爬取网页数据的方式做了一下小结
下面是要爬取数据的网址
日语学习网 http://jp.tingroom.com/yuedu/yd300p/
向网页提交数据 -- get 和 post
get和post各有什么作用
get 从服务器上获取数据
post 是向服务器传送数据
get 通过构造URL中的参数来是实现功能
post 将数据放在header提交数据
是通过get方式还是post方式来实现爬取数据必须根据网页,可通过审查元素network来查看
如下图:查看 http://jp.tingroom.com/yuedu/yd300p/
可以看到该网址可以通过get方式来爬取数据
下面是我爬取数据的一个例子
第一步,首先要导入要用到的模块
import
requests
import re
import sys
reload(sys)
sys.setdefaultencoding("gb18030") # 编码转换 强制转换为gb18030 str类型
type = sys.getfilesystemencoding()
header = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36'}
## 右击审查元素 network下 request headers 如下图:
# User-Agent 模拟浏览器来下载数据
第二步,通过get来获取数据
html = requests.get('http://jp.tingroom.com/yuedu/yd300p/',headers=header) #调用header
html.encoding = 'utf-8'
#print html.text
下面是利用正则表达式来查找日文,输出
title=re.findall('color:#666666;">(.*?)</span>',html.text,re.S) ## 查找日文
for each
in title: # color:#666666;"> 及 </span> 通过审查元素Elements来查看
printeach ## 打印日文
chinese = re.findall('color: #039;">(.*?)</a>',html.text,re.S) ## 查找中文
for each
in chinese:
print each ## 打印中文
结果如下:
如何通过post来获取数据?
通过审查元素来查看一个网址是get还是post来获取数据
下面是用post爬取数据的方法
import
requests
import re
url = 'https://www.crowdfunder.com/browse/deals&template=flase'
#html= requests.get(url).text
#print html.text
## 创建了一个字典
data = {'entities_only':'true',
'page':'1' # 网址第几页,可以变动
}
html_post = requests.post(url,data=data) # 利用post获取网页数据
title = re.findall('"card-title">(.*?)</div>',html_post.text,re.S)
##
<card-title> </div>通过审查元素Elements来查看,不同网页数据匹配不同
for
eachin title:
print each
相关文章推荐
- Python Web框架Tornado运行和部署
- 在Python Web项目中使用Jenkins进行持续集成
- ubuntu上用python安装扩展包遇到的一些问题
- libsvm学习-1 libsvm-3.21在Python-3.4.4, Pycharm, windows环境下的安装过程
- python +selenium+phantomjs 登录爬取新浪微博动态js页面
- Python学习
- Python 爬虫学习1
- Python日常
- MySQL+Python:安装MySQL-python
- Python 中字符串内建函数的一些使用注意事项
- Python decorator 2: 类
- python学习11-集合和字典
- Python MySQL(MySQLdb)
- python脚本技巧
- 【python学习】windows下安装MySQLdb
- Python 练习册 5-调整文件夹内所有图片的分辨率
- Python 练习册 4-统计文本文件中单词出现的个数
- Python 练习册 2-存储激活码到MySQL数据库
- Python 练习册 1-生成激活码
- Python 练习册 0-头像右上角添加数字