chuanjiesun 发表于 2014-02-20 15:44

python获取网页内容比浏览器查看源码少?

本帖最后由 chuanjiesun 于 2014-02-20 15:45 编辑

我使用python3.3,来获取网页内容,但是发现浏览器显示有的内容,在python的urlopen返回里没有,这是什么原因导致?
from bs4 import BeautifulSoup as beautifulsoup
from urllib import request

url = 'http://cirt.net/passwords?vendor=Huawei Technologies Co'

req = request.urlopen(url)
resp = req.read()
resp_decode = resp.decode()
print(resp_decode)
我在浏览器源码里可以看到<tr><td align=left valign=top width=300><b>Password</b></td><td align=left width=85%>admin</td></tr>
这样的内容,但是在resp响应里面没有了,这是什么原因导致的,请大家一起想个办法解决。

timespace 发表于 2014-02-20 17:07

回复 1# chuanjiesun
URL需要转义,浏览器会自动转,Python不管这事。>>> from urllib import request, parse
>>> parse.quote('Huawei Technologies Co')
'Huawei%20Technologies%20Co'
>>> url = 'http://cirt.net/passwords?vendor=' + parse.quote('Huawei Technologies Co')
>>> req = request.urlopen(url)
>>> resp = req.read()
>>> resp.find(b'<td align=left width=85%>admin</td>')
10611
>>> resp
b'</b></td><td align=left width=100%>admin</td></tr>\n<tr><td align=left valign=top width=300><b>Password</b></td><td align=left width=85%>admin</td></tr>\n<tr><td align=left valign=top width=300><b>Level</b></td><td align=left width=100%>Administrator</td></tr>\n<tr><td align=left valign=top width=300><b>Notes</b></td><td align=left width=100%>Also: Admin/admin</td></tr></table>\n<br><table border=0 width=95%>\n      <tr><td colspan=2 bgcolor="#E6E6E6"><a name="1823"></a><h3><b>2. &nbsp;Huawei Techn'
>>>

chuanjiesun 发表于 2014-02-21 10:06

果然是的,谢谢啊回复 2# timespace


   
页: [1]
查看完整版本: python获取网页内容比浏览器查看源码少?