鍍金池/ 問答/HTML5  Python  HTML/ python 爬蟲下載跳轉問題?狀態(tài)碼總是302?用瀏覽器手動下載就沒有任何問題

python 爬蟲下載跳轉問題?狀態(tài)碼總是302?用瀏覽器手動下載就沒有任何問題?

1.我在某個網(wǎng)頁里獲得了某個下載地址A,用瀏覽器點擊它的時候,總是會跳轉到真實下載地址B,而且瀏覽器開始自動幫助你下載,用瀏覽器表示一切都是正常的,但是我用自己寫的爬蟲程序,總是找不到真實的下載地址B,總是顯示狀態(tài)碼302?下載的種子文件大小還是0?
2.這是我自己的代碼:
url = 'http://www.gawu88.space/forum...'
headers = {

'Cookie': '__cfduid=d15f7eb39310b0301f07e1f744ca70a3d1526800937; _ga=GA1.2.942865751.1526800940; A8tI_2132_saltkey=njU69xqb; A8tI_2132_lastvisit=1526797339; A8tI_2132_adult_warn=1; A8tI_2132_auth=7d44BRr5TCxDGN9zYzcgtvgTYZzopZtEOJjzAO323fO%2BdvFoIjRzKH31yzmid2IjzmB9bQ5PLK%2B1iWLRV%2BnD6zp8PwkV; A8tI_2132_lastcheckfeed=7589318%7C1526800977; A8tI_2132_smile=2D1; A8tI_2132_atarget=1; _gid=GA1.2.849215201.1527331040; A8tI_2132_adv_gid=18; A8tI_2132_noticeTitle=1; A8tI_2132_self_unique_code=0856eca0-298c-1e72-91a0-4b6652a8c21d; cus_cookie=3; A8tI_2132_ignore_notice=1; A8tI_2132_notification_unread_tips=1527595369; __insp_wid=1484672786; __insp_nv=true; __insp_targlpu=aHR0cDovL3d3dy5nYXd1ODguc3BhY2UvdGhyZWFkLTk0Nzg5MTgtMS0xLmh0bWw%3D; __insp_targlpt=44CQ44CA44CA44CA44CR44CQTVA0LzEuNDdH44CR6LaF5q2j6aKc5YC855qE5p6B5ZOB6Z_p6LaK5re36KGA5aup5aa556ysMuWto_e_juiFv_m7keS4neS4pOWwj_aXtuWFqOijuOiHquaRuOivseaDkeiJs_iInuengC3mnY%2FlkKdf5oCn5ZCnX3NleDhf5p2P5ZCn5pyJ5L2g5pil5pqW6Iqx5byALeadj_WQpy3mgKflkKctc2V4OC3ljY7kurrmgKfniLHkuIvovb3ljLp8Q2hpbmVzZSBzZXggQlQt5p2P5ZCn5pyJ5L2gLOaYpeaaluiKseW8gA%3D%3D; __insp_norec_sess=true; A8tI_2132_sign_close=1; A8tI_2132_credit_max_num=0; A8tI_2132_credit_remain_num=0; A8tI_2132_ulastactivity=1527595671%7C0; A8tI_2132_home_diymode=1; A8tI_2132_sendmail=1; A8tI_2132_visitedfid=798D216D227D181D815D307D791D11D180D142; A8tI_2132_self_uid=7589318; A8tI_2132_self_fid=798; A8tI_2132_st_t=7589318%7C1527595792%7C2a861e2fa44511158f2204dd33027dbf; A8tI_2132_forum_lastvisit=D_180_1526811032D_815_1527520227D_181_1527522817D_227_1527595414D_216_1527595671D_798_1527595792; A8tI_2132_viewid=tid_9478266; A8tI_2132_self_tid=9478266; A8tI_2132_st_p=7589318%7C1527595855%7Cacd971897d6231863e34e40a030708b9; _gat=1; _gat_gtag_UA_117992228_1=1; _gat_gtag_UA_115157189_1=1; A8tI_2132_seccode=131784332.cc6482a36d7edec35d; __insp_slim=1527595859229; A8tI_2132_lastact=1527595889%09forum.php%09attachment',
'Host':'www.wifi588.net:443',
'Referer':'http://www.wifi588.net',
'Accept-Encoding':'',
'Connection':'keep-alive',
'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.140 Safari/537.36'

}
response = requests.get(url,headers=headers)
html = etree.HTML(response.text)
hrefs ='http://www.gawu88.space/'+ html.xpath('//p[@class="attnm"]/a/@href')[0]
req = requests.get(hrefs)
print(req.status_code)
file_name = "f:/1.torrent"
with open(file_name,"wb") as f:

f.write(req.content)
f.close()

3.其中req就是網(wǎng)頁中解析出來的A地址,用瀏覽器訪問,能夠得到真實下載地址B,用自己的程序總是獲取不到真實下載地址,我想請各位朋友能夠幫我看看,感激不盡。requests不是能夠自動幫助解決跳轉問題么?為什么打印req.url顯示的還是原來的地址?最后再次感謝各位朋友。

回答
編輯回答
綰青絲

首先要了解302狀態(tài)碼是什么意思

301 , 302 都是 HTTP 狀態(tài)的編碼,都代表著某個URL發(fā)生了轉移,不同之處在于:

301  redirect: 301 代表永久性轉移(Permanently Moved)。
302  redirect: 302 代表暫時性轉移(Temporarily Moved )。

然后瀏覽器從響應頭中得到轉以后的地址。也就是響應頭中的Location
所以你要先請求A,然后解析一下響應頭中的信息,得到真實下載地址B

2018年3月30日 02:30