使用urlopen我可以获得页面的html,但缺少关键部分

时间:2013-11-16 16:56:10

标签: python python-2.7 urllib2

我正在尝试使用来自this代码的部分制作一个使用网址从谷歌获取类似图像的脚本。

问题是,我想要进入this链接,因为从中我可以通过隐藏“按图搜索”链接来获取图像,但是当我使用脚本时,我得到了完全相同的页面,但没有“按图搜索”链接。

我想知道为什么以及是否有办法解决它。

提前多多感谢!

P.S。这是代码

import os
from urllib2 import Request, urlopen
from cookielib import LWPCookieJar

USER_AGENT = r"Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0)"
LOCAL_PATH = r"C:\scripts\google_search"
COOKIE_JAR_FILE = r".google-cookie"

class google_search(object):
    def cleanup(self):
        if os.path.isfile(self.cookie_jar_path):
            os.remove(self.cookie_jar_path)

        os.chdir(LOCAL_PATH)
        for html in os.listdir("."):
            if html.endswith(".html"):
                os.remove(html)

    def __init__(self, cookie_jar_path):
        self.cookie_jar_path = cookie_jar_path
        self.cookie_jar = LWPCookieJar(self.cookie_jar_path)
        self.counter = 0
        self.cleanup()
        try:
            cookie.load()
        except Exception:
            pass


    def get_html(self, url):
        request = Request(url = url)

        request.add_header("User-Agent", USER_AGENT)
        self.cookie_jar.add_cookie_header(request)
        response = urlopen(request)
        self.cookie_jar.extract_cookies(response, request)
        html_response = response.read()
        response.close()
        self.cookie_jar.save()
        return html_response


def main():
    url_2 = r"http://www.google.com/search?hl=en&q=http%3A%2F%2Fi.imgur.com%2FqGRxTNA.jpg&btnG=Google+Search"
    search = google_search(os.path.join(LOCAL_PATH, COOKIE_JAR_FILE))
    html_2 = search.get_html(url_2)


if __name__ == '__main__':
    main()

1 个答案:

答案 0 :(得分:1)

几个星期前我尝试过那种东西。我的服务器曾经用404拒绝我的请求,因为我没有设置合适的用户代理。

在您的情况下,您没有正确设置用户代理。粘贴我的User-Agent标题。

USER_AGENT = r"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.101 Safari/537.36"
PS:我希望你读过T&谷歌的C.您可能违反了这些条款。