s******u 发帖数: 247 | 1 比如这个mitbbs的网页,我怎么print都是乱码呢?
谁给指点一下?谢谢。代码如下:
import os
import sys
import urllib2
import cookielib
import codecs
url= 'http://www.mitbbs.com/article_t/Programming/31237353.html'
cj = cookielib.CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
# add a fake UA
opener.addheaders = [('User-Agent', 'Mozilla/5.0 (compatible; MSIE 9
.0; Windows NT 6.1; Trident/5.0)')]
urllib2.install... 阅读全帖 |
|
z*******h 发帖数: 346 | 2 import os
import sys
import urllib2
import cookielib
import codecs
url= 'http://www.mitbbs.com/bbsdoc/Programming.html'
cj = cookielib.CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
# add a fake UA
opener.addheaders = [('User-Agent', 'Mozilla/5.0 (compatible; MSIE 9.0;
Windows NT 6.1; Trident/5.0)')]
urllib2.install_opener(opener)
request = urllib2.Request(url)
response = opener.open(request).read()
print unicode(response, encoding = 'gb18030')
works on iTerm on Mac... 阅读全帖 |
|
b**********8 发帖数: 239 | 3 请各位大牛指点,感激不尽
想写一个登录mitbbs 的script by using urllib2 with following code but failed.
( if trying with mechanize package , I can login successfully)
Is there anything wrong with the function ?
Code:
import urllib, urllib2, cookielib
username = 'username'
password = 'password'
cj = cookielib.CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
body = (('id', username),
('password', password),
)
headers={
'User-agent':'Mozilla/5.0 (X11; U; Linux i68... 阅读全帖 |
|
b**********8 发帖数: 239 | 4 请各位大牛指点,感激不尽
想写一个登录mitbbs 的script by using urllib2 with following code but failed.
( if trying with mechanize package , I can login successfully)
Is there anything wrong with the function ?
Code:
import urllib, urllib2, cookielib
username = 'username'
password = 'password'
cj = cookielib.CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
body = (('id', username),
('password', password),
)
headers={
'User-agent':'Mozilla/5.0 (X11; U; Linux i68... 阅读全帖 |
|
b**********8 发帖数: 239 | 5 请各位大牛指点,感激不尽
想写一个登录mitbbs 的script with following code but failed.
( if trying with mechanize package , I can login successfully)
Is there anything wrong with the function ?
Code:
import urllib, urllib2, cookielib
username = 'username'
password = 'password'
cj = cookielib.CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
body = (('id', username),
('password', password),
)
headers={
'User-agent':'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2... 阅读全帖 |
|
l********a 发帖数: 1154 | 6 看你也是firefox,怎么没弄个httpfox插件看header呢?
你的代码有2个问题:
1. 提交的时候,密码对应的字段不是password,而是passwd,用httpfox能看到的
2. 登陆页面的request地址有误,不是http://www.mitbbs.com/mitbbs_login.php,而是http://www.mitbbs.com/newindex/mitbbs_bbslogin.php.也是httpfox看的.
下面附上调试通过的代码
import urllib, urllib2, cookielib
username = 'username'
password = 'password'
cj = cookielib.CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
body = (('id', username),
('passwd', password),
)
headers={
'User-age... 阅读全帖 |
|
t****x 发帖数: 1429 | 7 由于查不到状态,所以没法在 uscis 设置 email alert。 导致每天不停刷屏,非常影
响工作效率。
写了一个python script。 状态变了可以自动发email提醒。有兴趣的可以拿去用。
需要自己改caseId, toaddress. 最好发信的email address 和密码 fromaddress也用
自己的。
现在的设置每 10分钟check一次。
非码工,纯业余爱好,高手莫见笑。
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import urllib2
import re
import smtplib
import time
from email.mime.text import MIMEText
statusP = re.compile('Your Case Status: ([ws/]*?)')
fromaddress = "t**********[email protected]" ## (Have to be a gmail account.
Suggest to use your own gma... 阅读全帖 |
|
c**n 发帖数: 312 | 8 python code (不让attach code):
import urllib2
import re
import sys
prefix = sys.argv[1]
start = int(sys.argv[2])
end = int(sys.argv[3])
typeP = re.compile('Your Current Case Status for Form (\w+)')
statusP = re.compile('Your Case Status: ([\w\s/]*?)')
dateP = re.compile('(January|February|March|April|May|June|July|August|
September|Octobert|November|December) \d{1,2}, \d{4}')
for i in range(start, end):
caseId = prefix + str(i).zfill(10)
req = urllib2.Request("https://egov.uscis.g... 阅读全帖 |
|
c**n 发帖数: 312 | 9 改进版:
from time import sleep
import urllib2
import re
import sys
file = open(sys.argv[1])
cases = file.readlines()
typeP = re.compile('Your Current Case Status for Form (\w+)')
statusP = re.compile('Your Case Status: ([\w\s/]*?)')
dateP = re.compile('(January|February|March|April|May|June|July|August|
September|Octobert|November|December) \d{1,2}, \\
d{4}')
for caseId in cases:
caseId = caseId.strip()
req = urllib2.Request("https://egov.uscis.gov/cris/Dashboard/CaseStatus.
do?app... 阅读全帖 |
|
l****n 发帖数: 68 | 10 import urllib
import urllib2
url = '126.com'
values = {
'email' : 'e***[email protected]',
'password' : 'pw',
}
data = urllib.urlencode(values)
req = urllib2.Request(url, data)
response = urllib2.urlopen(req)
the_page = response.read()
为啥说要求启用cookie
我的浏览器没有禁用啊
还有那个登录的按钮 怎么才能实现呢 |
|
r*********r 发帖数: 3195 | 11 use urllib2, like this:
>>> import urllib2
>>> print urllib2.urlopen('http://www.google.com').read() |
|
r*********r 发帖数: 3195 | 12 use urllib2, like this:
>>> import urllib2
>>> print urllib2.urlopen('http://www.google.com').read() |
|
|
g***j 发帖数: 1275 | 14 【 以下文字转载自 Programming 讨论区 】
发信人: gmadj (干嘛爱打架), 信区: Programming
标 题: HTTP Error 403
发信站: BBS 未名空间站 (Sun Jan 25 17:08:37 2015, 美东)
写个很简单的python code 访问mitbbs,结果用urllib2,得到了HTTP Error 403,但
是访问别的网站就没有类似情况,请问这是为什么呢?谢谢了!
url = "http://www.mitbbs.com/"
response = urllib2.urlopen(url)
html = response.read() |
|
t********5 发帖数: 522 | 15 For python, you may want do the following:
req = urllib2.Request(url, headers={'User-Agent' : "mitbbsBrowser"})
con = urllib2.urlopen(req) |
|
S*A 发帖数: 7142 | 16 你们有多少人自己刷 router 的 firmware?
硬件需要照片都很明显了。
我用 openwrt firmware 因为开发很方便。
client mode 连入 wireless network.
script 是用 Lua 写的,部分模块也有 Python 版本是因为我不太会
用 lua.
这个是 irrigation caddy 的控制模块 caddy.py, 其他的就是
编程的问题。
import re
import urllib2
import time
class Schedule:
dayname = ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"]
def __init__(self, on=0, days=[], hour=0, min=0, pm=0,
z1=0, z2=0, z3=0, z4=0, z5=0,
z6=0, z7=0, z8=0, z9 = 0):
self.on = on
self.day... 阅读全帖 |
|
|
w****w 发帖数: 521 | 18 It's working!
Just replace:
def get_info(videoId2):
return json.loads(get_html('http://v.youku.com/player/getPlayList/VideoIDS/'+videoId2))
with:
def get_html_use_proxy(url):
proxy = urllib2.ProxyHandler({"http":"proxy.uku.im"})
opener = urllib2.build_opener(proxy)
response = opener.open(url)
data = response.read()
if response.info().get('Content-Encoding') == 'gzip':
data = ungzip(data)
elif response.info().get('Content-Encoding') == 'deflate':
data =... 阅读全帖 |
|
|
g***j 发帖数: 1275 | 20 写个很简单的python code 访问mitbbs,结果用urllib2,得到了HTTP Error 403,但
是访问别的网站就没有类似情况,请问这是为什么呢?谢谢了!
url = "http://www.mitbbs.com/"
response = urllib2.urlopen(url)
html = response.read() |
|
y**********u 发帖数: 6366 | 21 url = 'http://www.mitbbs.com'
request = urllib2.Request(url, headers={'User-Agent': 'fuck'})
response = urllib2.urlopen(req)
html = response.read() |
|
N******n 发帖数: 3003 | 22 page = urllib2.urlopen(link).read()
我把关键词写进link里面:https://www.google.com/search?q=+Toward+a+
statistically+explicit+understanding+of+de+novo+sequence+assembly
链接能手动打开,但是为什么不能用urlopen呢?
raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)
urllib2.HTTPError: HTTP Error 403: Forbidden
google是不是不让这样搜索。 |
|
z******a 发帖数: 64 | 23 BS很慢,不过还是比较管用的,现在urllib2比较好。 |
|
z******a 发帖数: 64 | 24 urllib, urllib2, httplib, httplib2, 其实你google一下就有不少,这几个是我用过
的。 |
|
l****g 发帖数: 1922 | 25 你去看看 urllib urllib2 还有 SGMLparser这几个
ps re 这个module 正则表达式 必须会 |
|
S*A 发帖数: 7142 | 26 Fair enough. For the record I don't even use ctags for python.
Just read the damn thing. For example, if you are trying to
understand the internal of python urllib2, ctags are not going
to help you much at all. |
|
l*****c 发帖数: 1153 | 27 用urllib2.urlopen() dump网页,发觉速度很慢,比Firefox慢1-2个数量集。问一下问
题在哪里?有什么好的解决方案? |
|
r****t 发帖数: 10904 | 28 firefox 是个很大的软件了,你用 urllib2 没有任何 cache 的话,总的来说当然慢。 |
|
l*****c 发帖数: 1153 | 29 我这么写的
handle = urllib2.urlopen("http://www.google.com/")
doc = handle.read()
在handle.read()上很慢。昨天在家里特别慢,今天到公司试了试,快了一个数量级,
比firefox还是慢不少。 |
|
l*****c 发帖数: 1153 | 30 有比较popular且比urllib2强大的库推荐么? |
|
r****t 发帖数: 10904 | 31 你看中 performance 的话,可能用 pycurl 比较容易达到目标。
我没怎么用过,但是觉得 urllib2 灵活性很好,你可以轻松对付 cookie 这种东西。
因为 javascript 的原因我只用 selenium, 但是 firefox 3 支持还没发布。
http://pycurl.sourceforge.net/ |
|
r****t 发帖数: 10904 | 32 华蟒用户组上有人问一样的问题,还搞定了,但是从邮件里面看不出怎么搞定的。
如果 firefox 比速度,建议把 UserAgent fake 成和 Firefox 一样,这样 server 端
的 throttle 可以避开。
urllib2 也可以让 http stay live, 怎么搞就不知道了,应该不是瓶颈。 |
|
|
g******e 发帖数: 352 | 34 code在这里,谢谢
import urllib
import urllib2
import sys
import chardet
response = urllib.urlopen('http://www.mitbbs.com/article_t/Programming/31190605.html')
content = response.read()
print content
chardet.detect(content)
type = sys.getfilesystemencoding()
print content.decode('gb2312').encode(type) |
|
g******e 发帖数: 352 | 35 谢谢您的回复,问题其实不是在chardet上,
就算不用chardet,同样的python code, 我用urlopen抓下来的一大部分mitbbs网页就是
乱码,根本print不出来,保存到文件也是乱码,试图用gb2312解码也报错。
但是有一小部分mitbbs网页能正确print出来
想不出问题出在哪里,我的环境是python 2.6, windows xp 中文版
如果方便的话,哪位大侠可以在机器上run一下这几行
简单的code? 能正确print吗?
import urllib
import urllib2
import sys
response = urllib.urlopen('http://www.mitbbs.com/article_t/Programming/31190605.html')
content = response.read()
print content
type = sys.getfilesystemencoding()
print content.decode('gb2312').encode(type) |
|
n******7 发帖数: 12463 | 36 需要用一个web server做点计算,但是它不支持batch query,所以写了一个python脚本
来递交查询
第一个server脚本是用post 传参数,还好
import urllib as ul
import urllib2 as ul2
url = 'xxx'
para = {'xx':xx,'yy':yy}
data = ul.urlencode(para)
req = ul2.Request(url, data)
response = ul2.urlopen(req)
从返回的html,可以提取两个内部id,id1和id2的值
第二个脚本用get,传递id1和id2两个参数的值
id1 = 145238
id2 = 153455
final_url = 'http://bioinformatics.clemson.edu/G-
SESAME/Program/geneCompareTwo3.php?id1=%s&id2=%s&Submit=submit' %
(id1,id2)
final_result = ul2.urlopen(final_url)
结果就总是不对,... 阅读全帖 |
|
t****a 发帖数: 1212 | 37 你首先要匹配到下载链接,然后一个个下载。
匹配下载链接,首先要解析html。当然你愿意不解析自己搞定也行。
如果用python的话,试试看beautifulsoup吧。
匹配到下载链接后,可以用linux的curl, wget。python的urllib2(或者libcurl?)也行。 |
|
d********g 发帖数: 10550 | 38 urllib/urllib2啥的也得换了。新的那个requests库就不错,也算几个大牛合搞的,就
不知道能不能入Guido的法眼
twisted? |
|
d********g 发帖数: 10550 | 39 3的标准库也没好哪去。近几年有些第三方的还是不错,像requests,基本快成替代
urllib和urllib2的行业标准了 |
|
p**o 发帖数: 3409 | 40 用requests或者urllib2裸写,用BeautifulSoup或者lxml或者正则来parse
或者用scrapy这样的framework
新手建议从裸写开始 |
|
|
d********g 发帖数: 10550 | 42 crawler用啥写?urllib/urllib2裸写?要爽的话看一下requests这个库
Ruby语言本身可以很爽,有不少魔法。魔法太多的结果就是要么全自己写,要么别人的
源码都得过一遍才知道魔法怎么搞的 |
|
w*s 发帖数: 7227 | 43 so i open this url with
fh = urllib2.urlopen()
for eachline in fh.readlines()
print eachline
.........
now i want to go back to the beginning, and parse the page again.
is there a seek(0) or ? |
|
a9 发帖数: 21638 | 44 fh = urllib2.urlopen()
fl = fh.readlines()
for eachline in fl:
print eachline
for eachline in fl:
print eachline
这样? |
|
n****e 发帖数: 629 | 45 try urllib2 module
win7. |
|