首先介绍动态爬取页面的原理和方法:首先使用selenium模仿浏览器获取加载后的页面,然后就可以再对页面进行爬取了
一、工具准备
二、简单的动态页面获取
首先我们通过url来解析页面,再对页面的信息进行爬取
'''
引入必要的包
'''
from selenium.webdriver import Firefox
from selenium.webdriver.firefox.options import Options
#通过spider方法便可以获取一个动态的页面,然后就可以使用静态页面的爬取方法进行获取需要的信息了
def get(url):
opt = Options()
opt.add_argument('-headless')
driver = Firefox(options=opt)
driver.get(url)
html = driver.page_source
driver.quit()
return html
#####################################
# 设置firefox为无界面浏览器
options = Options()
options.add_argument('--headless')
# 打开浏览器
browser = webdriver.Firefox(options=options)
# 利用get请求请求浏览器的一个网页
browser.get(url=url)
# 打印输出这个网页的源代码
print(browser.page_source)
# 关闭浏览器
browser.close()
# 杀死chrome浏览器的连接桥(chromedriver)的进程
browser.quit()
三、页面的爬取
通过上面其实已经获取到了页面的信息可以通过pyquery来进行数据的爬取
def spider(url):
html = get(url)
doc = pq(html)
img = doc('img').items()
for i in img:
print(i.attr('src'))
#通过pq对html进行初始化 变为Pyquery对象然后获取页面中的全部图片链接并输出
if __name__ == '__main__':
spider('https://image.baidu.com')