• python_爬虫_爬取京东商品信息


    爬取京东商品信息

    代码:

    import requests
    # url = "https://item.jd.com/2967929.html"
    url = "https://item.jd.com/100011585270.html"
    try:
        r = requests.get(url)
        r.raise_for_status()
        r.encoding = r.apparent_encoding
        print(r.text[:1000])
    except:
        print("爬取失败")

    运行结果1:

    <script>window.location.href='https://passport.jd.com/uc/login?ReturnUrl=http%3A%2F%2Fitem.jd.com%2F100011585270.html'</script>

    运行结果2:

     

    能爬取到信息,但是信息不够全面。结果2只出现过一次,没有及时保存。

    曾经怀疑结果1的出现是因为没有登陆,可是登陆后仍然会出现结果1。故排除该可能。

    由于偶然出现结果2,所以怀疑可能是网络原因,或者爬虫被禁止。

    想尝试更改header,模拟浏览器进行访问,但是由于现在要做scratch的分型雪花,所以暂时搁置。

    以上止步于python网络爬虫与信息获取(嵩天老师_MOOC)第一周第三单元第一个视频

     二

    把url换成了淘宝的一个链接:https://item.taobao.com/item.htm?spm=a1z0d.6639537.1997196601.24.77b47484qxHVRi&id=620107543829

    爬取结果:

    <!doctype html>
    <html><!-- cph -->
        <head>
        <meta http-equiv="X-UA-Compatible" content="IE=edge"/>
    <meta charset="gbk"/>
    <meta name="format-detection" content="telephone=no, address=no">
    <link rel="dns-prefetch" href="//g.alicdn.com">
    <link rel="dns-prefetch" href="//gtms01.alicdn.com">
    <link rel="dns-prefetch" href="//gtms02.alicdn.com">
    <link rel="dns-prefetch" href="//gtms03.alicdn.com">
    <link rel="dns-prefetch" href="//gtms04.alicdn.com">
    <link rel="dns-prefetch" href="//gd1.alicdn.com">
    <link rel="dns-prefetch" href="//gd2.alicdn.com">
    <link rel="dns-prefetch" href="//gd3.alicdn.com">
    <link rel="dns-prefetch" href="//gd4.alicdn.com">
    <link rel="canonical" href="https://item.taobao.com/item.htm?id=620107543829" />
    <link rel="amphtml" hreflang="zh-Hans" href="https://www.taobao.com/list/item-amp/620107543829.htm"/>
    <link rel="alternate" hreflang="zh-Hant" href="https://world.taobao.com/item/620107543829.htm" />
    <meta name="renderer" content="webkit"/>
    <meta name="refer
     
    shell模式下
    >>> import requests
    >>> r = requests.get("https://item.taobao.com/item.htm?spm=a1z0d.6639537.1997196601.24.77b47484qxHVRi&id=620107543829")
    >>> r.encoding
    'gb18030'
    >>> r.apparent_encoding
    'GB2312'
    >>> r.encoding = r.apparent_encoding
    >>> r.text[:1000]
    ' <!doctype html> <html><!-- cph -->     <head>     <meta http-equiv="X-UA-Compatible" content="IE=edge"/> <meta charset="gbk"/> <meta name="format-detection" content="telephone=no, address=no"> <link rel="dns-prefetch" href="//g.alicdn.com"> <link rel="dns-prefetch" href="//gtms01.alicdn.com"> <link rel="dns-prefetch" href="//gtms02.alicdn.com"> <link rel="dns-prefetch" href="//gtms03.alicdn.com"> <link rel="dns-prefetch" href="//gtms04.alicdn.com"> <link rel="dns-prefetch" href="//gd1.alicdn.com"> <link rel="dns-prefetch" href="//gd2.alicdn.com"> <link rel="dns-prefetch" href="//gd3.alicdn.com"> <link rel="dns-prefetch" href="//gd4.alicdn.com"> <link rel="canonical" href="https://item.taobao.com/item.htm?id=620107543829" /> <link rel="amphtml" hreflang="zh-Hans" href="https://www.taobao.com/list/item-amp/620107543829.htm"/> <link rel="alternate" hreflang="zh-Hant" href="https://world.taobao.com/item/620107543829.htm" /> <meta name="renderer" content="webkit"/> <meta name="refer'
    >>> r.encoding
    'GB2312'
     
     
     
     
     
     
    我的想法是正确的,京东应该是有来源审查,将headers换成mozilla就可以了。正确代码放到评论里
  • 相关阅读:
    hdu 5269 ZYB loves Xor I &amp;&amp; BestCoder Round #44
    Hibernate之关于多对多单向关联映射
    測试CPU支持指令集AVX,AVX2,SSE情况的代码【VS2010调试通过】
    联想教育应用使用说明(7.6版本号)——第5章 常见的问题与解答
    java.lang.ClassNotFoundException: org.springframework.web.content.ContextLoaderListener
    IETF和W3C的区别
    [ppurl]从”皮皮书屋”下载电子书的姿势
    javaEE面试重点
    HDU-1095-A+B for Input-Output Practice (VII)(多一个空格?)
    WinCC7.3 Win764位系统安装教程
  • 原文地址:https://www.cnblogs.com/Jane-share/p/13203817.html
Copyright © 2020-2023  润新知