python使用chrome driver做簡單爬蟲

使用pythonurllib來抓取網(wǎng)頁很容易被當作爬蟲來對待

下面是一個使用urllib的例子:
import urllib.request
url = 'http://www.reibang.com/p/99747a2f29f7'
headers = {
    'Connection': 'Keep-Alive',
    'Accept': 'text/html, application/xhtml+xml, */*',
    'Accept-Language': 'en-US,en;q=0.8,zh-Hans-CN;q=0.5,zh-Hans;q=0.3',
    'User-Agent': 'Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko'
}
req = urllib.request.Request(url, headers=headers)
response = urllib.request.urlopen(req)
html = response.read().decode()
print(html)
使用selenium

為了防止這種情況下愈,我們可以使用selenium自動控制chrome等瀏覽器抓取網(wǎng)頁數(shù)據(jù)宁玫,使用以上方式抓取網(wǎng)頁內(nèi)容的,還可以讓瀏覽器動態(tài)的加載網(wǎng)頁內(nèi)容,這方便了抓取使用ajax動態(tài)加載的網(wǎng)頁

代碼要點:
  1. 使用webdriver調(diào)用chrome driver抵屿,C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exechrome driver的安裝路徑
browser = webdriver.Chrome('C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe')
  1. 獲取到網(wǎng)頁的html代碼之后豁延,可以使用BeautifulSoup查找網(wǎng)頁標簽,通過BeautifulSoup初始化一個bsObj對象之后惯殊,可以使用findfind_all查找網(wǎng)頁標簽也殖,查找到的標簽還是繼續(xù)使用find土思、find_all方法
bsObj = BeautifulSoup(html, "html.parser")
note_list = bsObj.find("ul", {"class": "note-list"})
article_list = note_list.find_all("li")
  1. 如何獲得某個標簽中的屬性,如獲得<a />中的href屬性
href = i.find('a', {"class": "title"})['href']
  1. 如何獲得標簽中夾雜的文本忆嗜,如<p> 文本內(nèi)容 </p>己儒,可以使用get_text方法
times = i.find('div', {"class": "meta"}).a.get_text()

下面是完整代碼:

from selenium import webdriver
from bs4 import BeautifulSoup
import time


def get_all_article(uid):
    tar_url = 'http://www.reibang.com/u/' + uid
    browser.get(tar_url)
    html = browser.page_source
    bsObj = BeautifulSoup(html, "html.parser")
    note_list = bsObj.find("ul", {"class": "note-list"})
    article_list = note_list.find_all("li")
    all_article = []
    for i in article_list:
        href = i.find('a', {"class": "title"})['href']
        times = i.find('div', {"class": "meta"}).a.get_text().strip('\n').strip()
        all_article.append({'href': href, 'times': times})
    return all_article

browser = webdriver.Chrome('C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe')
browser.set_page_load_timeout(5)
uid = '55672ec82fcd'
all_article = get_all_article(uid=uid)
for article in all_article:
    times = int(article['times'])
    if times < 10:
        for j in range(10-times):
            try:
                browser.get('http://www.reibang.com'+article['href'])
                time.sleep(0.2)
            except Exception as e:
                continue
browser.quit()
chrome driver與chrome

這里是chrome driver的下載地址,如果速度太慢捆毫,建議使用vpn打開

chrome driverchrome之間的對應(yīng)關(guān)系闪湾,可以查看各個版本下面的notes.txt文件,如這里

下載好chrome driver之后將chromedrive.exe文件放在谷歌瀏覽器中chrome.exe的同級目錄下绩卤,接下來就可以使用selenium調(diào)用driver

部分對應(yīng)關(guān)系.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末途样,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子濒憋,更是在濱河造成了極大的恐慌何暇,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,807評論 6 518
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件凛驮,死亡現(xiàn)場離奇詭異裆站,居然都是意外死亡,警方通過查閱死者的電腦和手機黔夭,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,284評論 3 399
  • 文/潘曉璐 我一進店門宏胯,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人纠修,你說我怎么就攤上這事胳嘲〕” “怎么了扣草?”我有些...
    開封第一講書人閱讀 169,589評論 0 363
  • 文/不壞的土叔 我叫張陵,是天一觀的道長颜屠。 經(jīng)常有香客問我辰妙,道長,這世上最難降的妖魔是什么甫窟? 我笑而不...
    開封第一講書人閱讀 60,188評論 1 300
  • 正文 為了忘掉前任密浑,我火速辦了婚禮,結(jié)果婚禮上粗井,老公的妹妹穿的比我還像新娘尔破。我一直安慰自己街图,他們只是感情好,可當我...
    茶點故事閱讀 69,185評論 6 398
  • 文/花漫 我一把揭開白布懒构。 她就那樣靜靜地躺著餐济,像睡著了一般。 火紅的嫁衣襯著肌膚如雪胆剧。 梳的紋絲不亂的頭發(fā)上絮姆,一...
    開封第一講書人閱讀 52,785評論 1 314
  • 那天,我揣著相機與錄音秩霍,去河邊找鬼篙悯。 笑死,一個胖子當著我的面吹牛铃绒,可吹牛的內(nèi)容都是我干的鸽照。 我是一名探鬼主播,決...
    沈念sama閱讀 41,220評論 3 423
  • 文/蒼蘭香墨 我猛地睜開眼颠悬,長吁一口氣:“原來是場噩夢啊……” “哼移宅!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起椿疗,我...
    開封第一講書人閱讀 40,167評論 0 277
  • 序言:老撾萬榮一對情侶失蹤漏峰,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后届榄,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體浅乔,經(jīng)...
    沈念sama閱讀 46,698評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,767評論 3 343
  • 正文 我和宋清朗相戀三年铝条,在試婚紗的時候發(fā)現(xiàn)自己被綠了靖苇。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,912評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡班缰,死狀恐怖贤壁,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情埠忘,我是刑警寧澤脾拆,帶...
    沈念sama閱讀 36,572評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站莹妒,受9級特大地震影響名船,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜旨怠,卻給世界環(huán)境...
    茶點故事閱讀 42,254評論 3 336
  • 文/蒙蒙 一渠驼、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧鉴腻,春花似錦迷扇、人聲如沸百揭。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,746評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽信峻。三九已至,卻和暖如春瓮床,著一層夾襖步出監(jiān)牢的瞬間盹舞,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,859評論 1 274
  • 我被黑心中介騙來泰國打工隘庄, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留踢步,地道東北人。 一個月前我還...
    沈念sama閱讀 49,359評論 3 379
  • 正文 我出身青樓丑掺,卻偏偏與公主長得像获印,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子街州,可洞房花燭夜當晚...
    茶點故事閱讀 45,922評論 2 361

推薦閱讀更多精彩內(nèi)容