亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Python爬蟲抓取當當網圖片時,正則表達式沒有匹配到鏈接地址

Python爬蟲抓取當當網圖片時,正則表達式沒有匹配到鏈接地址

陪伴而非守候 2018-11-13 21:16:29
最近正在學Python爬蟲,從最基礎的學起,即用 urllib 和 re 這兩個包學抓取。用教材(韋瑋《精通Python網絡爬蟲》)第77頁的方法爬京東的圖片完全沒問題,但想照貓畫個虎,爬一下當當網兒童圖書版塊的圖片,卻怎么也行不通,用正則表達式做的 pattern,死活就是沒有匹配到任何鏈接地址。當當網初始頁面:http://category.dangdang.com/pg1-cp01.41.26.00.00.00.html求大神指正!import re, urllib.requestdef craw(url, page):    s = str(urllib.request.urlopen(url).read())    p = "<img data-original='(.+?)'"    lnks = re.findall(p, s)    t = re.search(p, s)        x = 1    for lnk in lnks:        fname = 'D:/Python/ddIMGs/book_kid/' + str(page) + '-' + str(x)        try:            urllib.request.urlretrieve(lnk, filename=fname)        except urllib.error.URLError as e:            if hasattr(e, 'code'):                x += 1            if hasattr(e, 'reason'):                x += 1        x += 1for i in range(1, 2):    url = 'http://category.dangdang.com/pg' + str(i) + '-cp01.41.26.00.00.00.html'    craw(url, i)
查看完整描述

2 回答

?
慕碼人2483693

TA貢獻1860條經驗 獲得超9個贊

修改第4、5兩行如下,貌似就解決問題了:

1     s = str(urllib.request.urlopen(url).read().decode(encoding='gbk'))
2     p = re.compile("<img data-original='(.+?)'", re.S)

編碼真的是個麻煩的問題,正則表達式也是,看來得多練習才行!


查看完整回答
反對 回復 2018-11-17
?
LEATH

TA貢獻1936條經驗 獲得超7個贊

如果s是正確的話,那應該能找得到。

urllib.request.urlopen(url).read().decode(encoding='utf8')這才對。


查看完整回答
反對 回復 2018-11-17
  • 2 回答
  • 0 關注
  • 898 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號