在爬取淘寶商品物品時所學編的一段代碼,PyCharm Community Edition提示:
1、Shadows name 'uapools' from outer scope,我只知道大概問題出在uapools和def ua(uapools),也從網上看過同樣問題的解釋,但始終不會調,有誰能告訴我該怎么做出修改、調整?
2、該段代碼并沒有成功爬取圖片,求解,個人分析到是因為沒有成功呼叫形參ua(uapools)所以沒有進入二次回圈,不知是否正確。
代碼如下:
import urllib.request
import re
import random
keyname = "連衣裙"
key = urllib.request.quote(keyname)
uapools = ["Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 "
"(KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36",
"Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) "
"Chrome/86.0.4240.111 Safari/537.36",
"Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Maxthon 2.0)",
]
def ua(uapools):
thisua = random.choice(uapools)
print(thisua)
headers = ("User-Agent", thisua)
opener = urllib.request.build_opener()
opener.addheaders = [headers]
# 安裝為全域
urllib.request.install_opener(opener)
for i in range(1, 10):
url = "https://s.taobao.com/search?q="+key+"&s="+str((i-1)*44)
ua(uapools)
date = urllib.request.urlopen(url).read().decode("utf-8", "ignore")
pat = '"pic_url":"//(.*?)"'
imglist = re.compile(pat).findall(date)
for j in range(0, len(imglist)):
thisimg = imglist[j]
thisimgurl = "http://"+thisimg
localfile = "D:\\Program Files (x86)\\PyCharm Community Edition 2020.3.4\\date\\page\\" \
"taobao\\"+str(i)+str(j)+".jpg"
urllib.request.urlretrieve(thisimgurl, filename=localfile)
uj5u.com熱心網友回復:
本人已將def ua(uapools):thisua = random.choice(uapools)中的uapools改為pools,解決命名沖突的問題了。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/276789.html
下一篇:寫腳本的大神來個
