最近因项目需要,学习了下爬虫。之前都是完成的静态网页的爬去,但大部分网页都是动态加载AJAX,所以学习了selenium。当然也可以通过在network中查找隐藏的网页内容,在利用requests去爬去相关内容。本次主要是为了学习selenium,爬取某蜂窝的热门游记。
from selenium import webdriver
from selenium.webdriver.common.by import By
import re
import time
def load_web(url):
#打开火狐
browser = webdriver.Firefox()
browser.get(url)
#page = brower.find_element(By.CSS_SELECTOR, 'a.pi')
time.sleep(3)
page = 0
#游记名称及简介
html_all = []
content_all = []
#页码
while page < 10:
html = browser.find_elements_by_css_selector('#_j_tn_content > div.tn-list > div > div.tn-wrapper > dl > dt > a')
content = browser.find_elements_by_css_selector('#_j_tn_content > div.tn-list > div > div.tn-wrapper > dl > dd > a')
html_all.append(html)
content_all.append(content)
#翻页
browser.find_element_by_css_selector('.pg-next').click()
time.sleep(3)
page+=1
print(html_all)
return html_all, content_all
#主程序调用
url = 'http://www.mafenxxxxx'
crawl = load_web(url)
#输出[<selenium.webdriver.firefox.webelement.FirefoxWebElement (session="3ad01caf-cc95-4b22-bf85-40cc7d5ced58", element="6d3f8e25-20d4-43a3-969a-68c915274be9")>
本次,只是实现了简单的网页的翻页及抓取。对于首尾页、显示隐示等待、自动登录、解析文件、自动存储、phantomjs等等内容,以待后续完善。
#参考
http://ju.outofmemory.cn/entry/304084 #示例
https://www.cnblogs.com/zhaof/p/6953241.html #语法
http://selenium-python.readthedocs.io/api.html#module-selenium.webdriver.common.action_chains #官网
待进一步........