使用urllib发送post请求-模拟网站买票查票的post
2017-04-07 23:08
561 查看
python 3.5.1
我装的最新的python3.6.1
python
urllib
from urllib.request import urlopen
beautifulSoup4
from bs4 import BeautifulSoup
安装BeautifulSoup4
linux:
sudo apt-get install python-bs4
mac:
sudo easy_install pip
pip install beautifulsoup4
windows:
pip install beautifulsoup4
pip3 install beautifulsoup4
3
3.1 urllib基本用法
urllib是python3.x中提供的一系列操作url的库,可以轻松的模拟用户使用浏览
器访问网页
模拟真实浏览器:
携带User-Agent头
req= request.Request(url)
req.add_header(key,value)
resp = reuqest.urlopen(req)
print(resp.read().decode(“utf-8”))
使用Post:
导入urllib库下面的parse
from urllib import parse
使用urlencode生成post数据
postData=parse.urlencode([
(key1,val1),
(key2,val2),
(keyn,valn)
])
使用postData发送post请求
request.urlopen(req,data=postData.encode(‘utf-8’))
得到请求状态
resp.status
得到服务器的类型
resp.reason
www.thsrc.com.tw/tw/TimeTable/SearchResult
模拟post查票
posttest.py
urltest.py
我装的最新的python3.6.1
python
urllib
from urllib.request import urlopen
beautifulSoup4
from bs4 import BeautifulSoup
安装BeautifulSoup4
linux:
sudo apt-get install python-bs4
mac:
sudo easy_install pip
pip install beautifulsoup4
windows:
pip install beautifulsoup4
pip3 install beautifulsoup4
3
3.1 urllib基本用法
urllib是python3.x中提供的一系列操作url的库,可以轻松的模拟用户使用浏览
器访问网页
模拟真实浏览器:
携带User-Agent头
req= request.Request(url)
req.add_header(key,value)
resp = reuqest.urlopen(req)
print(resp.read().decode(“utf-8”))
使用Post:
导入urllib库下面的parse
from urllib import parse
使用urlencode生成post数据
postData=parse.urlencode([
(key1,val1),
(key2,val2),
(keyn,valn)
])
使用postData发送post请求
request.urlopen(req,data=postData.encode(‘utf-8’))
得到请求状态
resp.status
得到服务器的类型
resp.reason
www.thsrc.com.tw/tw/TimeTable/SearchResult
模拟post查票
posttest.py
from urllib import request from urllib import parse postData = parse.urlencode([ ("StartStation", "977abb69-413a-4ccf-a109-0272c24fd490"), ("EndStation", "9c5ac6ca-ec89-48f8-aab0-41b738cb1814"), ("SearchDate", "2017/04/08"), ("SearchTime", "08:00"), ("SearchWay", "DepartureInMandarin") ]) req = request.Request("http://www.thsrc.com.tw/tw/TimeTable/SearchResult") req.add_header("Origin","http://www.thsrc.com.tw") req.add_header("User-Agent", "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36") rep = request.urlopen(req,data=postData.encode('utf-8')) print(rep.read().decode("utf-8"))
urltest.py
from urllib import request req = request.Request("https://www.baidu.com/") req.add_header("User-Agent","Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36") rep = request.urlopen(req) print(rep.read().decode("utf-8"))
相关文章推荐
- PHP模拟发送POST请求之五curl基本使用和多线程优化
- java中使用scoket模拟http post请求发送图片或文件
- 使用 HttpWebRequest 发送模拟 POST 请求
- C#(WINFORM)实现模拟POST发送请求登录网站
- java中使用scoket模拟http post请求发送图片或文件
- 使用java程序模拟页面发送http的post请求
- java中使用scoket模拟http post请求发送图片或文件
- 使用java程序模拟页面发送http的post请求
- PHP中使用CURL模拟发送GET,POST,PUT,DELETE请求
- java中使用scoket模拟http post请求发送图片或文件
- 使用java程序模拟页面发送http的post请求
- Web Service系列之实例之使用urllib发送SOAP POST请求
- 使用java程序模拟页面发送http的post请求
- PHP模拟发送POST请求之五curl基本使用和多线程优化
- 使用httpclient4.3.X模拟post请求登陆网站获取cookie信息的操作
- Http学习之使用HttpURLConnection发送post请求深入
- Http学习之使用HttpURLConnection发送post请求深入
- C#实现通过HttpWebRequest发送POST请求实现网站自动登陆
- C#实现通过HttpWebRequest发送POST请求实现网站自动登陆
- 使用java程序发送post请求给servlet