首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >urllib2.urlopen( URL ).read()无法读取URL内容

urllib2.urlopen( URL ).read()无法读取URL内容
EN

Stack Overflow用户
提问于 2015-12-24 06:30:35
回答 1查看 536关注 0票数 0

我试图使用下面的python命令读取链接:http://www.quikr.com/Mobile-Phones/y149的web内容:

代码语言:javascript
复制
import requests
import urllib2
hdr = {'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.64 Safari/537.11'}
url = 'http://www.quikr.com/Mobile-Phones/y149'
req = urllib2.Request(url, headers=hdr)
page = urllib2.urlopen(req).read()

print page提供以下输出:

代码语言:javascript
复制
<!DOCTYPE html>
<head>
<META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW">
<meta http-equiv="cache-control" content="max-age=0" />
<meta http-equiv="cache-control" content="no-cache" />
<meta http-equiv="expires" content="0" />
<meta http-equiv="expires" content="Tue, 01 Jan 1980 1:00:00 GMT" />
<meta http-equiv="pragma" content="no-cache" />
<meta http-equiv="refresh" content="10; url=/distil_r_captcha.html?Ref=/Mobile-Phones/y149&amp;distil_RID=97C53AFC-AA02-11E5-B76A-8C12C4D2AB6C&amp;distil_TID=20151224055301" />
<script type="text/javascript">
    (function(window){
        try {
            if (typeof sessionStorage !== 'undefined'){
                sessionStorage.setItem('distil_referrer', document.referrer);
            }
        } catch (e){}
    })(window);
</script>
<script type="text/javascript" src="/QkrDIV1cexsvzwdadarecara.js" defer></script><style type="text/css">#d__fFH{position:absolute;top:-5000px;left:-5000px}#d__fF{font-family:serif;font-size:200px;visibility:hidden}#qttwcrxueetv{display:none!important}</style></head>
<body>
<div id="distil_ident_block">&nbsp;</div>
</body>
</html>

是否有任何变通办法来获取要读取的实际url内容。任何帮助都是非常感谢的。提前谢谢!!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-12-24 06:38:33

一种选择是通过selenium实现真正的浏览器自动化。工作样本:

代码语言:javascript
复制
from selenium import webdriver

driver = webdriver.Firefox()
driver.get("http://www.quikr.com/Mobile-Phones/y149")

for phone in driver.find_elements_by_css_selector(".snb_entire_ad"):
    link = phone.find_element_by_css_selector("a.adttllnk")

    print link.text

driver.close()

如果要获取页面源,请使用.page_source (当然,在关闭驱动程序之前):

代码语言:javascript
复制
print(driver.page_source)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34448340

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档