python访问网站
Ⅰ 如何使用python加载网站所有页面
python 打开浏览器,可以做简单的刷网页的小程序。仅供学习,别用非法用途。
python的webbrowser模块支持对浏览器进行一些操作,主要有以下三个方法:
复制代码代码如下:
webbrowser.open(url, new=0, autoraise=True)
webbrowser.open_new(url)
webbrowser.open_new_tab(url)
我们需要了解webbrowser.open()方法:
复制代码代码如下:
webbrowser.open(url, new=0, autoraise=True)
在系统的默认浏览器中访问url地址,如果new=0,url会在同一个
浏览器窗口中打开;如果new=1,新的浏览器窗口会被打开;new=2
新的浏览器tab会被打开。
而webbrowser.get()方法可以获取到系统浏览器的操作对象。
webbrowser.register()方法可以注册浏览器类型,而允许被注册的类型名称如下:
复制代码代码如下:
Type Name Class Name Notes
'mozilla' Mozilla('mozilla')
'firefox' Mozilla('mozilla')
'netscape' Mozilla('netscape')
'galeon' Galeon('galeon')
'epiphany' Galeon('epiphany')
'skipstone' BackgroundBrowser('skipstone')
'kfmclient' Konqueror() (1)
'konqueror' Konqueror() (1)
'kfm' Konqueror() (1)
'mosaic' BackgroundBrowser('mosaic')
'opera' Opera()
'grail' Grail()
'links' GenericBrowser('links')
'elinks' Elinks('elinks')
'lynx' GenericBrowser('lynx')
'w3m' GenericBrowser('w3m')
'windows-default' WindowsDefault (2)
'macosx' MacOSX('default') (3)
'safari' MacOSX('safari') (3)
'google-chrome' Chrome('google-chrome')
'chrome' Chrome('chrome')
'chromium' Chromium('chromium')
'chromium-browser' Chromium('chromium-browser')
DEMO:
复制代码代码如下:
#!/usr/bin/env python
#-*- coding:UTF-8 -*-
import sys
import webbrowser
sys.path.append("libs")
url = 'httu.com'
webbrowser.open(url)
print webbrowser.get()
Ⅱ python3.6怎么访问网页
使用Python访问网页主要有三种方式: urllib, urllib2, httplib
urllib比较简单,功能相对也比较弱,httplib简单强大,但好像不支持session
1. 最简单的页面访问
res=urllib2.urlopen(url)
print res.read()
2. 加上要get或post的数据
data={"name":"hank", "passwd":"hjz"}
urllib2.urlopen(url, urllib.urlencode(data))
3. 加上http头
header={"User-Agent": "Mozilla-Firefox5.0"}
urllib2.urlopen(url, urllib.urlencode(data), header)使用opener和handler
opener = urllib2.build_opener(handler)
urllib2.install_opener(opener)
4. 加上session
cj = cookielib.CookieJar()
cjhandler=urllib2.HTTPCookieProcessor(cj)
opener = urllib2.build_opener(cjhandler)
urllib2.install_opener(opener)
5. 加上Basic认证
password_mgr = urllib2.()
top_level_url = "http://www.163.com/"
password_mgr.add_password(None, top_level_url, username, password)
handler = urllib2.HTTPBasicAuthHandler(password_mgr)
opener = urllib2.build_opener(handler)
urllib2.install_opener(opener)
6. 使用代理
proxy_support = urllib2.ProxyHandler({"http":"http://1.2.3.4:3128/"})
opener = urllib2.build_opener(proxy_support)
urllib2.install_opener(opener)
7. 设置超时
socket.setdefaulttimeout(5)
Ⅲ python 多线程 访问网站
#python2
#coding=utf-8
importos,re,requests,sys,time,threading
reload(sys)
sys.setdefaultencoding('utf-8')
classArchives(object):
def__init__(self,url):
self.url=url
defsave_html(self,text):
fn='{}_{}'.format(int(time.time()),self.url.split('/')[-1])
dirname='htmls'
ifnotos.path.exists(dirname):
os.mkdir(dirname)
withopen(os.path.join(dirname,fn),'w')asf:
f.write(text)
defget_htmls(self):
try:
r=requests.get(self.url)
r.raise_for_status()
r.encoding=r.apparent_encoding
print'gethtmlfrom',url
self.save_html(r.text)
exceptException,e:
print'爬取失败',e
defmain(self):
thread=threading.Thread(target=self.get_htmls())
thread.start()
thread.join()
if__name__=='__main__':
start=time.time()
fn=sys.argv[1]iflen(sys.argv)>1else'urls.txt'
withopen(fn)asf:
s=f.readlines()
forurlinset(s):
a=Archives(url.strip())
a.main()
end=time.time()
printend-start
Ⅳ 如何用python模拟登录jsp网站
简单说一下流程:先用cookielib获取cookie,再用获取到的cookie,进入需要登录的网站。
01 # -*- coding: utf-8 -*-
02 # !/usr/bin/python
03
04 import urllib2
05 import urllib
06 import cookielib
07 import re
08
09 auth_url = 'http://www.nowamagic.net/'
10 home_url = 'http://www.nowamagic.net/';
11 # 登陆用户名和密码
12 data={
13 "username":"nowamagic",
14 "password":"pass"
15 }
16 # urllib进行编码
17 post_data=urllib.urlencode(data)
18 # 发送头信息
19 headers ={
20 "Host":"www.nowamagic.net",
21 "Referer": "http://www.nowamagic.net"
22 }
23 # 初始化一个CookieJar来处理Cookie
24 cookieJar=cookielib.CookieJar()
25 # 实例化一个全局opener
26 opener=urllib2.build_opener(urllib2.HTTPCookieProcessor(cookieJar))
27 # 获取cookie
28 req=urllib2.Request(auth_url,post_data,headers)
29 result = opener.open(req)
30 # 访问主页 自动带着cookie信息
31 result = opener.open(home_url)
32 # 显示结果
33 print result.read()
再附带几个示例程序:
1. 使用已有的cookie访问网站
01 import cookielib, urllib2
02
03 ckjar = cookielib.MozillaCookieJar(os.path.join('C:\Documents and Settings\tom\Application Data\Mozilla\Firefox\Profiles\h5m61j1i.default', 'cookies.txt'))
04
05 req = urllib2.Request(url, postdata, header)
06
07 req.add_header('User-Agent', \
08 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)')
09
10 opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(ckjar) )
11
12 f = opener.open(req)
13 htm = f.read()
14 f.close()
2. 访问网站获得cookie,并把获得的cookie保存在cookie文件中
01 import cookielib, urllib2
02
03 req = urllib2.Request(url, postdata, header)
04 req.add_header('User-Agent', \
05 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)')
06
07 ckjar = cookielib.MozillaCookieJar(filename)
08 ckproc = urllib2.HTTPCookieProcessor(ckjar)
09
10 opener = urllib2.build_opener(ckproc)
11
12 f = opener.open(req)
13 htm = f.read()
14 f.close()
15
16 ckjar.save(ignore_discard=True, ignore_expires=True)
3. 使用指定的参数生成cookie,并用这个cookie访问网站
01 import cookielib, urllib2
02
03 cookiejar = cookielib.CookieJar()
04 urlOpener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookiejar))
05 values = {'redirect':", 'email':'[email protected]',
06 'password':'password', 'rememberme':", 'submit':'OK, Let Me In!'}
07 data = urllib.urlencode(values)
08
09 request = urllib2.Request(url, data)
10 url = urlOpener.open(request)
11 print url.info()
12 page = url.read()
13
14 request = urllib2.Request(url)
15 url = urlOpener.open(request)
16 page = url.read()
17 print page
Ⅳ Python爬虫如何避免爬取网站访问过于频繁
一. 关于爬虫
爬虫,是一种按照一定的规则自动地抓取互联网信息的程序。本质是利用程序获取对我们有利的数据。
反爬虫,从不是将爬虫完全杜绝;而是想办法将爬虫的访问量限制在一个可接纳的范围,不要让它过于频繁。
二. 提高爬虫效率的方法
协程。采用协程,让多个爬虫一起工作,可以大幅度提高效率。
多进程。使用CPU的多个核,使用几个核就能提高几倍。
多线程。将任务分成多个,并发(交替)的执行。
分布式爬虫。让多个设备去跑同一个项目,效率也能大幅提升。
打包技术。可以将python文件打包成可执行的exe文件,让其在后台执行即可。
其他。比如,使用网速好的网络等等。
三. 反爬虫的措施
限制请求头,即request header。解决方法:我们可以填写user-agent声明自己的身份,有时还要去填写origin和referer声明请求的来源。
限制登录,即不登录就不能访问。解决方法:我们可以使用cookies和session的知识去模拟登录。
复杂的交互,比如设置“验证码”来阻拦登录。这就比较难做,解决方法1:我们用Selenium去手动输入验证码;方法2:我们用一些图像处理的库自动识别验证码(tesserocr/pytesserart/pillow)。
ip限制。如果这个IP地址,爬取网站频次太高,那么服务器就会暂时封掉来自这个IP地址的请求。 解决方法:使用time.sleep()来对爬虫的速度进行限制,建立IP代理池或者使用IPIDEA避免IP被封禁。
Ⅵ 如何用python访问网页并在表单处输入内容
我用过selenium模拟浏览器
使用selenium的chrome或firefox的webdriver打开浏览器
driver.get(url) #访问你的网页from=driver.find_elements_by_xpath("xxx")通过xpath或id等方法锁定到网页上表单的那个元素后,用
from.send_keys("xxx")来输入内容
Ⅶ Python如何访问网站不缓存
1、运行时加-u参数,如#python3-utest.py>>test.log&用man查看python的-u参数。
强制stdin,stdout和stderr完全不缓冲。
Python由荷兰数学和计算机科学研究学会的吉多·范罗苏姆于1990年代初设计,作为一门叫做ABC语言的替代品。
Ⅷ python3一个类如何访问不同的网站
我们可以把这个类封装一下后,然后入参url即可
Ⅸ python使用for循环,用不同参数访问一个网站,返回结果都是第一次访问时的结果
不用session去试一下啊。比如我们对自己的代码做测试时,如果不是做压测,就不公用session。直接用requests的post/get搞,session是在同一个会话,有些东西会保持,而这些,可能刚好就是需要更改而你漏掉的,直接用requests.post(),少什么,就比较容易发现。