切换风格

Wizard Sky California Sunset glow Black Cloud Beige Dragon Lavender NewYear City Snow Flowers London
收藏本站XSS平台字符串转换jsfuck
大牛,请问如何请求一个网页?[复制链接]
发表于 2013-1-20 19:27:49 | 显示全部楼层 |!read_mode!
以下是俺个人写着玩的,监听端口用的。但是,俺有问题了,你看到,我导包了,但是,你看,2。7的版本会报错。。。
是没有这个包呢还是怎么了?
我要得到,请求的网页的回传的值
谢谢大牛了!!谢谢了
付图片一张
20130120192631.png

import SocketServer
from time import ctime
import logging
import socket
import urllib
import urllib.request
#import urllib.parse

HOST = ''
PORT = 7019
ADDR = (HOST, PORT)
logging.basicConfig(level=logging.DEBUG,
        format='%(asctime)s %(levelname)s %(message)s',
        filename='log.txt',
        filemode='a+')

class MyRequestHandler(SocketServer.BaseRequestHandler):
    def handle(self):
        print '...connected from:', self.client_address
        while True:
            try:
                data = self.request.recv(1024)
                if(not data):
                    break
                self.request.sendall('[%s] %s ' % (ctime(),data))
                self.dataSet(data)
            except socket.timeout:
                print "caught socket.timeout exception"
    def LogTemplate(self, s):
        return '[id.' + str(id(self.request)) + ']:  ' + str(s)
    def Log(self, s):
        ss =  self.LogTemplate(s)
        print ss
        logging.info(ss)
    def dataSet(self,data):
        Terminal=data[1:13]
        command=data[13:17]
        Serial=data[17:32]
        datetime=data[32:38]
        GPS=data[38:39]
        lat =data[39:49]
        lon =data[49:60]
        speed=data[60:65]
        date=data[65:71]
        direction=data[71:77]
        io=data[77:85]
        Mileage=data[85:86]
        mil=data[86:94]
        satellite=data[94:95]
        signal=data[95:97]
        ovqrr=data[97:98]
        ovv=data[98:101]
        bsm=data[101:109]
        sv=data[109:112]
        sv1=data[112:115]
        sv2=data[115:118]
        url="http://www.baidu.com"
        values={"content:":"Test!"}
        dt=urllib.parse.urlencode(vlues)
        req=urllib.request.Request(url,dt)
        response=urllib.request.urlopen(req)
        page=response.read()
       
    def LogErr(self, s):
        ss =  self.LogTemplate(s)
        print ss
        logging.error(ss)

    def setup(self):
        self.Log('thread')
        self.request.settimeout(60)
    def finish(self):
        self.request.close()
        self.Log("Exitthread")

tcpServ = SocketServer.ThreadingTCPServer(ADDR, MyRequestHandler)
print 'waiting for connection...'
tcpServ.serve_forever()


发表于 2013-1-20 19:34:35 | 显示全部楼层
坛主,我干你妹的大菊花,2.7的版本。。。。

看着捉急吧 urllib.request是 python3中的做法, python3把python2中的urllib和urllib2合并为urllib了, 所以 urllib.request 在python27中要用urllib2.request或者urllib2.Request, 具体请查文档. 而urllib.parse 在python2.7中要用 urllib.urlencode

干你妹的。如有大牛,有更详细的解释,欢迎回答
发表于 2013-1-20 19:59:41 | 显示全部楼层
2.x版本的python可以直接使用import urllib来进行操作,但是3.x版本的python使用的是import urllib.request来进行操作




QQ截图20130120195813.png



QQ截图20130120195813.png



言归正传给你个请求网页的简单代码,其他逻辑我不知道你想做什么
# get code of given URL as html text string
# Python3 uses urllib.request.urlopen()
# instead of Python2's urllib.urlopen() or urllib2.urlopen()

import urllib
fp = urllib.urlopen("http://www.python.org")

mybytes = fp.read()
# note that Python3 does not read the html code as string
# but as html code bytearray, convert to string with
mystr = mybytes.decode("utf8")
fp.close()
print(mystr)


返回html代码
QQ截图20130120195813.png










操千曲而后晓声,观千剑而后识器。
发表于 2013-1-20 20:34:04 | 显示全部楼层
抚菊深思 发表于 2013-1-20 19:59
2.x版本的python可以直接使用import urllib来进行操作,但是3.x版本的python使用的是import urllib.request ...

俺要黑了你的站{:3_43:}
发表于 2013-1-20 20:38:40 | 显示全部楼层
抚菊深思 发表于 2013-1-20 19:59
2.x版本的python可以直接使用import urllib来进行操作,但是3.x版本的python使用的是import urllib.request ...

你妹的大菊花!{:3_45:}你那有木有python的中文版的chm文档?
发表于 2013-1-20 21:27:55 | 显示全部楼层
Goodwinner 发表于 2013-1-20 20:38
你妹的大菊花!你那有木有python的中文版的chm文档?

:$


Python中文手册v2.4.chm(中英对照)
http://www.3g-sec.com/thread-1285-1-1.html


简明Python教程PDF
http://www.3g-sec.com/thread-802-1-1.html

发表于 2013-1-21 09:33:50 | 显示全部楼层
抚菊深思 发表于 2013-1-20 21:27
Python中文手册v2.4.chm(中英对照)
http://www.3g-sec.com/thread-1285-1-1.html

{:3_50:}他妹的大菊花,我# 注视,dos 居然报错。不能有中文注释,我日你妹的大菊花!!
发表于 2013-1-21 11:12:40 | 显示全部楼层
Goodwinner 发表于 2013-1-21 09:33
他妹的大菊花,我# 注视,dos 居然报错。不能有中文注释,我日你妹的大菊花!!

傻货,,,,有中文在代码第一行添加#coding=utf-8试试

发表于 2013-1-21 15:55:52 | 显示全部楼层
抚菊深思 发表于 2013-1-20 19:59
2.x版本的python可以直接使用import urllib来进行操作,但是3.x版本的python使用的是import urllib.request ...

你用的什么编辑器??python那个。。。我要,我要,给俺发一个
发表于 2013-1-21 16:37:41 | 显示全部楼层
Goodwinner 发表于 2013-1-21 15:55
你用的什么编辑器??python那个。。。我要,我要,给俺发一个

http://www.sublimetext.com/  这个是官方网址自己挑版本下载吧

代码区

GMT+8, 2019-11-21 22:38

Powered by Discuz! X2

© 2001-2018 Comsenz Inc.

回顶部