鱼C论坛

 找回密码
 立即注册
查看: 2567|回复: 2

京东图片爬虫 怎么这是怎么回事?

[复制链接]
发表于 2020-2-17 18:42:53 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
import re
import urllib.request
def craw(url,page):

    html1 = urllib.request.urlopen(url).read()
    html1 = str(html1)
    pat1 = '<div id="plist".+?<div class="page clearfix">'
    result1 = re.compile(pat1).findall(html1)  
    result1 = result1[0]
   
    pat2 = '<img width="220" height="220" data-img="1" data-lazy-img="//(.+?\.jpg)">'
    imagelist = re.compile(pat2).findall(result1)
    x = 1
    for imageurl in imagelist:
        imagename=  "C:/Users/Administrator/Desktop/京东图片/"+str(page)+str(x)+".jpg"
        imageurl = 'http://'+imageurl
        print(imageurl)
        try:
            urllib.request.urlretrieve(imageurl,filename=imagename)
        except urllib.error.URLError as e:
            if hasattr(e, "code"):
                x=+1
            if hasattr(e,"reason"):  
                x+=1
        x+=1
for i in range (1,79):
    url = "http://list.jd.com/list.html?cat=9987,653,655&page="+str(i)
    craw(url,i)
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-2-17 18:43:41 | 显示全部楼层

                               
登录/注册后可看大图


                               
登录/注册后可看大图


                               
登录/注册后可看大图


                               
登录/注册后可看大图


                               
登录/注册后可看大图


                               
登录/注册后可看大图


                               
登录/注册后可看大图


                               
登录/注册后可看大图


                               
登录/注册后可看大图


                               
登录/注册后可看大图


                               
登录/注册后可看大图


                               
登录/注册后可看大图


                               
登录/注册后可看大图


                               
登录/注册后可看大图


                               
登录/注册后可看大图


                               
登录/注册后可看大图


                               
登录/注册后可看大图


                               
登录/注册后可看大图


                               
登录/注册后可看大图


                               
登录/注册后可看大图
">\n              </a>\n                                        </div>\n            <div class="p-scroll">\n              <span class="ps-prev"> < </span>\n              <span class="ps-next"> > </span>\n              <div class="ps-wrap">\n                <ul class="ps-main">\n                  <li class="ps-item" ids=""> <a title="\xe9\x9d\x99\xe5\xa4\x9c\xe9\xbb\x91" href="javascript:;" ><img  data-sku="8945185" is_no_close="0_0" width="25" height="25" class="loading-style2" data-lazy-img="//img10.360buyimg.com/n9/jfs/t1/98433/10/1256/327914/5dbc3002E778f4e20/6db22e8c30a06471.png"></a></li>\n                </ul>\n              </div>\n            </div>\n            <div class="p-price">\n              <strong  class="J_price"><em></em><i></i></strong>\n              <strong  class="J_price js_ys" style="display:none"><em></em><i></i></strong>\n            </div>\n            <div class="p-name">\n              <a target="_blank" title="" href="//item.jd.com/8945185.html">\n                <em>\n                                    \xe9\xad\x85\xe6\x97\x8f 16th Plus \xe5\x85\xa8\xe9\x9d\xa2\xe5\xb1\x8f\xe6\xb8\xb8\xe6\x88\x8f\xe6\x89\x8b\xe6\x9c\xba 6GB+128GB \xe9\x9d\x99\xe5\xa4\x9c\xe9\xbb\x91 \xe5\x85\xa8\xe7\xbd\x91\xe9\x80\x9a\xe7\xa7\xbb\xe5\x8a\xa8\xe8\x81\x94\xe9\x80\x9a\xe7\x94\xb5\xe4\xbf\xa14G\xe6\x89\x8b\xe6\x9c\xba \xe5\x8f\x8c\xe5\x8d\xa1\xe5\x8f\x8c\xe5\xbe\x85                </em>\n                <i class="promo-words"></i>\n              </a>\n            </div>\n            <div class="p-commit"></div>\n            <div class="p-focus"><a class="J_focus" data-sku="8945185" href="javascript:;" ><i></i>\xe5\x85\xb3\xe6\xb3\xa8</a></div>\n            <div class="p-shop"  data-score="4" data-reputation="0" data-shopid="" data-shop_name="\xe9\xad\x85\xe6\x97\x8f\xe4\xba\xac\xe4\xb8\x9c\xe8\x87\xaa\xe8\x90\xa5\xe6\x97\x97\xe8\x88\xb0\xe5\xba\x97" data-done="1"></div>\n                          <div class="p-icons J-pro-icons"> </div>\n                        <div class="p-stock"  data-isDeliveryable="5" style="display: none;"></div>\n          </div>\n        </li>\n              <li class="gl-item">\n          <div class="gl-i-wrap j-sku-item" data-sku="100000822981" is_no_close="0_0" venderid="1000004259" jdzy_shop_id="1000004259" brand_id="8557"  >\n                        <div class="p-img" >\n              <a target="_blank" href="//item.jd.com/100000822981.html" >\n                                                <img width="220" height="220" data-img="1" data-lazy-img="//img11.360buyimg.com/n7/jfs/t25954/134/1930444050/488286/31587d0d/5bbf1fc9N3ced3749.jpg
Traceback (most recent call last):
  File "C:/Users/Administrator/Desktop/京东图片/京东图片.py", line 28, in <module>
    craw(url,i)
  File "C:/Users/Administrator/Desktop/京东图片/京东图片.py", line 19, in craw
    urllib.request.urlretrieve(imageurl,filename=imagename)
  File "C:\Users\Administrator\AppData\Local\Programs\Python\Python38-32\lib\urllib\request.py", line 247, in urlretrieve
    with contextlib.closing(urlopen(url, data)) as fp:
  File "C:\Users\Administrator\AppData\Local\Programs\Python\Python38-32\lib\urllib\request.py", line 222, in urlopen
    return opener.open(url, data, timeout)
  File "C:\Users\Administrator\AppData\Local\Programs\Python\Python38-32\lib\urllib\request.py", line 525, in open
    response = self._open(req, data)
  File "C:\Users\Administrator\AppData\Local\Programs\Python\Python38-32\lib\urllib\request.py", line 542, in _open
    result = self._call_chain(self.handle_open, protocol, protocol +
  File "C:\Users\Administrator\AppData\Local\Programs\Python\Python38-32\lib\urllib\request.py", line 502, in _call_chain
    result = func(*args)
  File "C:\Users\Administrator\AppData\Local\Programs\Python\Python38-32\lib\urllib\request.py", line 1348, in http_open
    return self.do_open(http.client.HTTPConnection, req)
  File "C:\Users\Administrator\AppData\Local\Programs\Python\Python38-32\lib\urllib\request.py", line 1319, in do_open
    h.request(req.get_method(), req.selector, req.data, headers,
  File "C:\Users\Administrator\AppData\Local\Programs\Python\Python38-32\lib\http\client.py", line 1230, in request
    self._send_request(method, url, body, headers, encode_chunked)
  File "C:\Users\Administrator\AppData\Local\Programs\Python\Python38-32\lib\http\client.py", line 1241, in _send_request
    self.putrequest(method, url, **skips)
  File "C:\Users\Administrator\AppData\Local\Programs\Python\Python38-32\lib\http\client.py", line 1092, in putrequest
    self._validate_path(url)
  File "C:\Users\Administrator\AppData\Local\Programs\Python\Python38-32\lib\http\client.py", line 1183, in _validate_path
    raise InvalidURL(f"URL can't contain control characters. {url!r} "
http.client.InvalidURL: URL can't contain control characters. '/n7/jfs/t1/98433/10/1256/327914/5dbc3002E778f4e20/6db22e8c30a06471.png">\\n              </a>\\n                                        </div>\\n            <div class="p-scroll">\\n              <span class="ps-prev"> < </span>\\n              <span class="ps-next"> > </span>\\n              <div class="ps-wrap">\\n                <ul class="ps-main">\\n                  <li class="ps-item" ids=""> <a title="\\xe9\\x9d\\x99\\xe5\\xa4\\x9c\\xe9\\xbb\\x91" href="javascript:;" ><img  data-sku="8945185" is_no_close="0_0" width="25" height="25" class="loading-style2" data-lazy-img="//img10.360buyimg.com/n9/jfs/t1/98433/10/1256/327914/5dbc3002E778f4e20/6db22e8c30a06471.png"></a></li>\\n                </ul>\\n              </div>\\n            </div>\\n            <div class="p-price">\\n              <strong  class="J_price"><em></em><i></i></strong>\\n              <strong  class="J_price js_ys" style="display:none"><em></em><i></i></strong>\\n            </div>\\n            <div class="p-name">\\n              <a target="_blank" title="" href="//item.jd.com/8945185.html">\\n                <em>\\n                                    \\xe9\\xad\\x85\\xe6\\x97\\x8f 16th Plus \\xe5\\x85\\xa8\\xe9\\x9d\\xa2\\xe5\\xb1\\x8f\\xe6\\xb8\\xb8\\xe6\\x88\\x8f\\xe6\\x89\\x8b\\xe6\\x9c\\xba 6GB+128GB \\xe9\\x9d\\x99\\xe5\\xa4\\x9c\\xe9\\xbb\\x91 \\xe5\\x85\\xa8\\xe7\\xbd\\x91\\xe9\\x80\\x9a\\xe7\\xa7\\xbb\\xe5\\x8a\\xa8\\xe8\\x81\\x94\\xe9\\x80\\x9a\\xe7\\x94\\xb5\\xe4\\xbf\\xa14G\\xe6\\x89\\x8b\\xe6\\x9c\\xba \\xe5\\x8f\\x8c\\xe5\\x8d\\xa1\\xe5\\x8f\\x8c\\xe5\\xbe\\x85                </em>\\n                <i class="promo-words"></i>\\n              </a>\\n            </div>\\n            <div class="p-commit"></div>\\n            <div class="p-focus"><a class="J_focus" data-sku="8945185" href="javascript:;" ><i></i>\\xe5\\x85\\xb3\\xe6\\xb3\\xa8</a></div>\\n            <div class="p-shop"  data-score="4" data-reputation="0" data-shopid="" data-shop_name="\\xe9\\xad\\x85\\xe6\\x97\\x8f\\xe4\\xba\\xac\\xe4\\xb8\\x9c\\xe8\\x87\\xaa\\xe8\\x90\\xa5\\xe6\\x97\\x97\\xe8\\x88\\xb0\\xe5\\xba\\x97" data-done="1"></div>\\n                          <div class="p-icons J-pro-icons"> </div>\\n                        <div class="p-stock"  data-isDeliveryable="5" style="display: none;"></div>\\n          </div>\\n        </li>\\n              <li class="gl-item">\\n          <div class="gl-i-wrap j-sku-item" data-sku="100000822981" is_no_close="0_0" venderid="1000004259" jdzy_shop_id="1000004259" brand_id="8557"  >\\n                        <div class="p-img" >\\n              <a target="_blank" href="//item.jd.com/100000822981.html" >\\n                                                <img width="220" height="220" data-img="1" data-lazy-img="//img11.360buyimg.com/n7/jfs/t25954/134/1930444050/488286/31587d0d/5bbf1fc9N3ced3749.jpg' (found at least ' ')
>>> c
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-17 18:44:24 | 显示全部楼层
执行的结果 截图咋上传 只能复制粘贴呢QAQ
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-1-22 13:24

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表