本文主要介紹selenium(一個(gè)測(cè)試工具)來(lái)模擬登陸并爬取數(shù)據(jù)
<code>if name == 'main':
driver = crate_rlw()
url = 'http://*****.com/knowledge/article/detailcontent.html?articleId={0}'
for i in range(1,5077):
vi_rlw(url.format(i),driver)
time.sleep(6)
driver.close()
</code>
上述代碼為調(diào)度程序:
url 則為分析出來(lái)的,主要方法就是熟悉一下目標(biāo)網(wǎng)站的url的格式爆侣,然后去遍歷全部的url(下面的代碼)
第二行代碼怎是登陸代碼如下:
<code>def crate_rlw():
url ='http://*****.com/web/login'
driver = webdriver.Chrome('./chromedriver')
print url
driver.get(url)
driver.maximize_window()
driver.implicitly_wait(30)
driver.find_element_by_name('username').send_keys('*******')
driver.find_element_by_name('password').send_keys('*******')
driver.find_element_by_id('loginBtn').click()
return driver</code>
上面的代碼是登陸目標(biāo)網(wǎng)站瀑构,并返回dirver,這里會(huì)有登陸相關(guān)的信息
這里是用selenium來(lái)處理的 不懂可以查看selenium相關(guān)教程。
<code>
def vi_rlw(url,driver):
driver.get(url)
driver.implicitly_wait(30)</code>
這里還需要好多處理强品,我只做了簡(jiǎn)單的訪問(wèn),只是展示的一個(gè)過(guò)程辉懒。
數(shù)據(jù)處理部分是需要后期來(lái)做的。
還有要說(shuō)的就是:一些網(wǎng)站會(huì)限制你爬取數(shù)據(jù)谍失,但是大多數(shù)網(wǎng)站都是友好的眶俩,但是這并不表示你可以肆無(wú)忌憚的毫無(wú)限制的去爬取。爬取的時(shí)間最好設(shè)置成晚上或者快鱼。颠印。。抹竹。
還有就是不要對(duì)目標(biāo)網(wǎng)站造成不必要的‘傷害’线罕。
爬蟲并不難,且行且珍惜窃判!
2016.11.14中午