程式小白,最近一段時間學python爬蟲,遇到一個程式老是通不過,特地來次論壇來咨詢下高手,請懂得的指點一二。
import re
import requests
import hashlib
import time
def get_index(url):
respose = requests.get(url)
if respose.status_code==200:
return respose.text
def parse_index(res):
urls = re.findall(r'class="items".*?href="https://bbs.csdn.net/topics/(.*?)"', res,re.S) # re.S 把文本資訊轉換成1行匹配
return urls
#def save(url):
def get_detail(urls):
for url in urls:
if not url.startswith('http'):
url='http://www.xiaohuar.com%s' %url
result = requests.get(url)
if result.status_code==200 :
mp4_url_list = re.findall(r'id="media".*?src="https://bbs.csdn.net/topics/(.*?)"', result.text, re.S)
if mp4_url_list:
mp4_url=mp4_url_list[0]
print(mp4_url)
#save(mp4_url)
video = requests.get(url)
if video.status_code == 200:
m = hashlib.md5()
m.updata(url.encode('utf-8'))
m.updata(str(time.time()).encode('utf-8'))
filename = r'%s.mp4' % m.hexdigest()
filepath = r'D:\\shipin2%s' % filename
with open(filepath, 'wb') as f:
f.write(video.content)
def main():
for i in range(5):
res1 = get_index('http://www.xiaohuar.com/list-3-%s.html'% i )
res2 = parse_index(res1)
get_detail(res2)
if __name__ == '__main__':
main()
這段程式在PyCharm中運行時,結果提示:
C:\Users\lenovo\Anaconda3\python.exe C:/Users/lenovo/PycharmProjects/Python/MP45.py
https://mvvideo5.meitudata.com/570afb877331d7952.mp4
Traceback (most recent call last):
File "C:/Users/lenovo/PycharmProjects/Python/MP45.py", line 65, in <module>
main()
File "C:/Users/lenovo/PycharmProjects/Python/MP45.py", line 62, in main
get_detail(res2)
File "C:/Users/lenovo/PycharmProjects/Python/MP45.py", line 48, in get_detail
m.updata(url.encode('utf-8'))
AttributeError: '_hashlib.HASH' object has no attribute 'updata'
行程已結束,退出代碼1
請指教
uj5u.com熱心網友回復:
update吧,不是updatauj5u.com熱心網友回復:
版主已回答,還有這個網址的mp4資源有問題。uj5u.com熱心網友回復:
把 updata 改為 updateuj5u.com熱心網友回復:
哈哈哈和我一個錯誤,他那錯誤代碼意思是hashlib那個包里面沒有updata方法,你把updata改成update轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/224588.html
