爬蟲實例——爬取煎蛋網OOXX頻道(反反爬蟲——偽裝成瀏覽器)


煎蛋網在反爬蟲方面做了不少工作,無法通過正常的方式爬取,比如用下面這段代碼爬取無法得到我們想要的源代碼。

import requests

url = 'http://jandan.net/ooxx'
print requests.get(url).text

執行上述代碼,你得到的結果應該跟我一樣:

煎蛋網應該是通過檢測headers來判斷是否爬蟲,要想獲取正常的源代碼,需要偽裝成瀏覽器。

# -*- coding: utf-8 -*-
import re
import requests
from bs4 import BeautifulSoup

import sys
reload(sys)
sys.setdefaultencoding('utf8')

def get_bs(url):
    headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.82 Safari/537.36'}
    text = requests.post(url, headers=headers).text
    return BeautifulSoup(text)

def download(url):
    fn = re.search(r'.*/(.*)', url).group(1)
    content = requests.get(url).content
    with open(fn, 'wb') as f:
        f.write(content)

if __name__ == '__main__':
    url = 'http://jandan.net/ooxx'
    bs = get_bs(url)
    for code in bs('li', id=re.compile(r'comment-\d+')):
        url = code.find('img')['src']
        download(url)

當然,這個爬蟲腳本也不是永久有效,說不定哪天煎蛋就出新招了,所以只能見招拆招。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM