怎么实现python写网页后台实现与数据库交互

2024-05-17 17:02

1. 怎么实现python写网页后台实现与数据库交互

1、批处理脚本中,要想与用户实行交互,需要用到命令set 配合/p参数一起使用。

2、set命令是用来定义变量并赋值的,而使用/p参数后,set 并不马上在命令中给变量赋值,而是另起一行,等待用户的输入,并用户的输入内容做为值赋给变量。

3、而且在set /p后,可以加入提示语句,让用户知道,程序正在等待输入。

4、与用户交互,虽然已经实现了用户输入的接收。但还需要对接收到的内容进行处理,这时可以利用if 语句来完成。

5、运行后的效果如下,用户输入admin时,显示“输入正确”,否则,显示“请输入正确的用户名”。

6、再来完善一下脚本代码,做一个简单的用户登录判断。主要用到goto语句和if语句,实现python写网页后台实现与数据库交互。

怎么实现python写网页后台实现与数据库交互

2. python获取cookie后怎么模拟登陆网站

运行平台:Windows
Python版本:Python3.x
IDE:Sublime text3
一、为什么要使用Cookie
Cookie,指某些网站为了辨别用户身份、进行session跟踪而储存在用户本地终端上的数据(通常经过加密)。比如说有些网站需要登录后才能访问某个页面,在登录之前,你想抓取某个页面内容,登陆前与登陆后是不同的,或者不允许的。使用Cookie和使用代理IP一样,也需要创建一个自己的opener。在HTTP包中,提供了cookiejar模块,用于提供对Cookie的支持。

http.cookiejar功能强大,我们可以利用本模块的CookieJar类的对象来捕获cookie并在后续连接请求时重新发送,比如可以实现模拟登录功能。该模块主要的对象有CookieJar、FileCookieJar、MozillaCookieJar、LWPCookieJar。
它们的关系: CookieJar–派生–>FileCookieJar–派生–>MozillaCookieJar和LWPCookieJar
工作原理:创建一个带有cookie的opener,在访问登录的URL时,将登录后的cookie保存下来,然后利用这个cookie来访问其他网址。查看登录之后才能看到的信息。
同样,我们以实例进行讲解,爬取伯乐在线的面向对象的漂亮MM的邮箱联系方式。
二、实战
1.背景介绍
在伯乐在线有这么一个有趣的模块,面向对象,它说白了就是提供了一个程序员(媛)网上相亲的平台。
URL:
它的样子是这样的:

可以看到,这里有很多的相亲贴,随便点进去就会有网上相亲MM的详细信息,想获取MM的联系方式,需要积分,积分可以通过签到的方式获取。如果没有登陆账户,获取联系方式的地方是这个样子的:

如果登陆了账号,获取联系方式的地方是这个样子的:

想要爬取MM的联系邮箱,就需要用到我们本次讲到的知识,Cookie的使用。当然,首先你积分也得够。
在讲解之前,推荐一款抓包工具–Fiddler,可以在Google Chrome的Google商店下载这个插件,它的样子是这样的:

可以看到,通过这个插件,我们可以很容易找到Post的Form Data等信息,很方便,当然也可以用之前讲得浏览器审查元素的方式查看这些信息。
2.过程分析
在伯乐在线首页点击登陆的按钮,Fiddler的抓包内容如下:

从上图可以看出,真正请求的url是
Form Data的内容记住,这些是我们编程需要用到的。user_login是用户名,user_pass是用户密码。
在点击取得联系邮箱按钮的时候,Fiddler的抓包内容如下:

从上图可以看出,此刻真正请求的url是
同样Form Data中内容要记下来。postId是每个帖子的id。例如,打开一个相亲贴,它的URL是28/,那么它的这个postId就是4128。为了简化程序,这里就不讲解如何自动获取这个postId了,本实例直接指定postId。如果想要自动获取,可以使用beautifulsoup解析/返回的信息。beautifulsoup的使用。有机会的话,会在后面的爬虫笔记中进行讲解。
3.测试
1)将Cookie保存到变量中
首先,我们先利用CookieJar对象实现获取cookie的功能,存储到变量中,先来感受一下:
# -*- coding: UTF-8 -*-from urllib import requestfrom http import cookiejarif __name__ == '__main__':    #声明一个CookieJar对象实例来保存cookiecookie = cookiejar.CookieJar()    #利用urllib.request库的HTTPCookieProcessor对象来创建cookie处理器,也就CookieHandlerhandler=request.HTTPCookieProcessor(cookie)    #通过CookieHandler创建openeropener = request.build_opener(handler)    #此处的open方法打开网页response = opener.open('httdu.com')    #打印cookie信息for item in cookie:print('Name = %s' % item.name)print('Value = %s' % item.value)1234567891011121314151617
我们使用以上方法将cookie保存到变量中,然后打印出了cookie中的值,运行结果如下:

2)保存Cookie到文件
在上面的方法中,我们将cookie保存到了cookie这个变量中,如果我们想将cookie保存到文件中该怎么做呢?方便以后直接读取文件使用,这时,我们就要用到FileCookieJar这个对象了,在这里我们使用它的子类MozillaCookieJar来实现Cookie的保存,编写代码如下:
# -*- coding: UTF-8 -*-from urllib import requestfrom http import cookiejarif __name__ == '__main__':    #设置保存cookie的文件,同级目录下的cookie.txtfilename = 'cookie.txt'#声明一个MozillaCookieJar对象实例来保存cookie,之后写入文件cookie = cookiejar.MozillaCookieJar(filename)    #利用urllib.request库的HTTPCookieProcessor对象来创建cookie处理器,也就CookieHandlerhandler=request.HTTPCookieProcessor(cookie)    #通过CookieHandler创建openeropener = request.build_opener(handler)    #此处的open方法打开网页response = opener.open('h.com')    #保存cookie到文件cookie.save(ignore_discard=True, ignore_expires=True)123456789101112131415161718
cookie.save的参数说明:
ignore_discard的意思是即使cookies将被丢弃也将它保存下来;
ignore_expires的意思是如果在该文件中cookies已经存在,则覆盖原文件写入。
在这里,我们将这两个全部设置为True。
运行之后,cookies将被保存到cookie.txt文件中。我们可以查看自己查看下cookie.txt这个文件的内容。
3)从文件中获取Cookie并访问
我们已经做到把Cookie保存到文件中了,如果以后想使用,可以利用下面的方法来读取cookie并访问网站,感受一下:
# -*- coding: UTF-8 -*-from urllib import requestfrom http import cookiejarif __name__ == '__main__':    #设置保存cookie的文件的文件名,相对路径,也就是同级目录下   filename = 'cookie.txt'   #创建MozillaCookieJar实例对象   cookie = cookiejar.MozillaCookieJar()    #从文件中读取cookie内容到变量   cookie.load(filename, ignore_discard=True, ignore_expires=True)    #利用urllib.request库的HTTPCookieProcessor对象来创建cookie处理器,也就CookieHandler   handler=request.HTTPCookieProcessor(cookie)    #通过CookieHandler创建opener   opener = request.build_opener(handler)    #此用opener的open方法打开网页   response = opener.open('httcom')    #打印信息   print(response.read().decode('utf-8'))12345678910111213141516171819了解到以上内容,我们那就可以开始正式编写模拟登陆伯乐在线的程序了。同时,我们也可以获取相亲MM的联系方式。
4.编写代码
我们利用CookieJar对象实现获取cookie的功能,存储到变量中。然后使用这个cookie变量创建opener,使用这个设置好cookie的opener即可模拟登陆,同笔记四中讲到的IP代理的使用方法类似。
创建cookie_test.py文件,编写代码如下:
# -*- coding: UTF-8 -*-from urllib import requestfrom urllib import errorfrom urllib import parsefrom http import cookiejarif __name__ == '__main__':    #登陆地址   login_url = 'hin/admin-ajax.php'       #User-Agent信息                     user_agent = r'Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.94 Safari/537.36'   #Headers信息   head = {'User-Agnet': user_agent, 'Connection': 'keep-alive'}    #登陆Form_Data信息   Login_Data = {}   Login_Data['action'] = 'user_login'   Login_Data['redirect_url'] = 'hobbole.com/'   Login_Data['remember_me'] = '0'         #是否一个月内自动登陆   Login_Data['user_login'] = '********'       #改成你自己的用户名   Login_Data['user_pass'] = '********'        #改成你自己的密码   #使用urlencode方法转换标准格式   logingpostdata = parse.urlencode(Login_Data).encode('utf-8')    #声明一个CookieJar对象实例来保存cookie   cookie = cookiejar.CookieJar()    #利用urllib.request库的HTTPCookieProcessor对象来创建cookie处理器,也就CookieHandler   cookie_support = request.HTTPCookieProcessor(cookie)    #通过CookieHandler创建opener   opener = request.build_opener(cookie_support)    #创建Request对象   req1 = request.Request(url=login_url, data=logingpostdata, headers=head)    #面向对象地址   date_url = 'htt/wp-admin/admin-ajax.php'   #面向对象   Date_Data = {}   Date_Data['action'] = 'get_date_contact'   Date_Data['postId'] = '4128'   #使用urlencode方法转换标准格式   datepostdata = parse.urlencode(Date_Data).encode('utf-8')   req2 = request.Request(url=date_url, data=datepostdata, headers=head)    try:        #使用自己创建的opener的open方法       response1 = opener.open(req1)       response2 = opener.open(req2)       html = response2.read().decode('utf-8')       index = html.find('jb_contact_email')        #打印查询结果       print('联系邮箱:%s' % html[index+19:-2])    except error.URLError as e:        if hasattr(e, 'code'):           print("HTTPError:%d" % e.code)        elif hasattr(e, 'reason'):           print("URLError:%s" % e.reason)1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545.运行结果如下:

三、总结
获取成功!如果看过之前的笔记内容,我想这些代码应该很好理解吧。

3. 如何用Python采集需要需要登录的页面内容?

def post3(): 
# for mail.sina.com.cn
    import urllib,urllib2,cookielib
    cj = cookielib.CookieJar()
    url_login = 网址
    body = (需要提交的数据)
    opener=urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
    opener.addheaders = [('User-agent', 'Opera/9.23')]
    urllib2.install_opener(opener)
    req=urllib2.Request(url_login,urllib.urlencode(body))
    u=urllib2.urlopen(req)
    data=urllib.urlopen("需要获取页面内容的网址")
    print data.read()
    
    
post3()

如何用Python采集需要需要登录的页面内容?

4. 如何用python实现爬虫抓取网页时自动翻页

看了你这个网站,下一页每次都不一样,每一页的链接也不一样,这种你靠分析肯定是不行的,因为你永远都不知道会出来什么内容,建议你用八爪鱼采集器,这是目前最好用的网页数据采集利器,解决这种问题很轻松的。

5. 怎么样用python编写一个程序语言登录路由器获取器操作页面内容

如果是用Basic Auth 的话,可以参考这段代码
import urllib2, base64
request = urllib2.Request(url) base64string = base64.encodestring('%s:%s' % (user,password))[:-1] request.add_header("Authorization", "Basic %s" % base64string)
htmlFile = urllib2.urlopen(request) htmlData = htmlFile.read() print htmlData htmlFile.close()
On 4/10/07, Shuning Hong  wrote:
这是我的做法:
params='MainID=C&SubID=1'
authstr='Basic '+base64.encodestring(routeruser+':'+routerpass)
authstr=authstr[:-1] # delete last /n
headers={'Authorization':authstr}
On 4/10/07, 蒋辉  wrote:
我是电信光纤宽带用户,用web 认证不支持多台机器上网。参考了网上的资料,想 写一个 python 的小程序,可以自动获取宽带路由器的外网IP,自动发送认证信 息。宽带路由器登录时会要用户名密码,否则就连不上,我通过使用嗅探器抓包把 认证过的'Authorization' 值取出放在我的程序里能连上路由器,但通用性太差。 有什么好方法可以解决吗?
我的小程序如下: #ptyhon import urllib import httplib params = urllib.urlencode({}) headers = {'Accept': 'text/html', 'User-Agent': 'Mozilla','Content-Type': 'application/x-www-form-urlencoded','Authorization': 'Basic amh1aTpqaHVpMTIzNA=='} conn = httplib.HTTPConnection("192.168.1.1") #print headers conn.request("GET","/userRpm/StatusRpm.htm",params,headers) #id (conn) r1 = conn.getresponse() a = r1.read() #print a b = a.find("222") #print b c = a.find("</td",b) #print c d = a[b:c] print d
params = urllib.urlencode({'connectname': '', 'consumeright': 0, 'separatecard': 0, 'needActiveX' : 1, 'clienttype' :1, 'cookiedate' :3650, 'localip': d, 'httpIP' :d, 'isPNP':0, 'username': "njkd107089173", 'password': "1976"})
headers = {'Accept': 'text/html', 'User-Agent': 'Mozilla', 'Content-Type': 'application/x-www-form-urlencoded'}
server = '218.2.135.36' path = '/secu/webLogin.jsp'
conn = httplib.HTTPConnection(server) conn.request("POST", path, params, headers) r1 = conn.getresponse() print r1.status, r1.reason data1 = r1.read() print data1 conn.close()

怎么样用python编写一个程序语言登录路由器获取器操作页面内容

6. 如何用最简单的Python爬虫采集整个网站

您好,python爬虫一般需要用到大量短效动态IP,一般采用API端口提取,单次提取200.间隔1S,整理好的视频教程,里面有详细的讲解。
点击下载链接: https://pan.baidu.com/s/1TXjBVcnaC31CV4tVVvG8Fg 提取码: twn3

7. 如何用Python实现自动登录获取信息?

那你就用 Selenium 和 PhantomJS 模拟浏览器登陆就行了。
超级简单~~~

如何用Python实现自动登录获取信息?

8. 使用python flask做网页,使用了JS来做一个弹出登陆框,怎么获取到表单数据,

function a(){
var a = $("#username").val();
var b = $("#password").val();
alert("帐号="+a+"密码="+b)
}