chromedriver&一个用selenium完成爬虫的例子

chromedriver

看到有盆友安装chromedriver直接把chrome整没用了,或者没有反应,可能是版本选的不对,大部分教程都是之前的,但是chrome一直在更新,我的就是81.0.4044.122最新版本。
http://npm.taobao.org/mirrors/chromedriver/
找到与自己版本对应的chromedriver即可
PS:浏览器版本查询chrome://version
PPS:要配置环境!!!下载完把.exe程序放到chrome根目录下面,再把其所在路径添加到path

这样就可以在python里面直接用啦
(同时不要忘了在cmd里面pip install selenium!)

一个例子:热点新闻爬取

import time
from  selenium import webdriver
#自动打开浏览器登入目标网站
driver=webdriver.Chrome(executable_path="C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe")
#这是我电脑装chromedriver的路径
driver.get("https://news.qq.com")
#网很卡的时候是打不开的...所以尽量保证网络流畅,不然调试的时候想砸键盘

for i in range(1,10):
    time.sleep(2)#亲测不停顿基本加载不出来,不可能一次到底,2秒完成加载差不多
#设置多次页面滚动,每次的时间间隔为两秒;等待加载可获取更多内容
    driver.execute_script("window.scrollTo(window.scrollX, %d);"%(i*200))
    #scrollTo功能,滚动到什么位置,参数是文档左上角显示的x坐标和y坐标
#上面完成的是所有页面(包括不断加载出来的)的获取

from bs4 import BeautifulSoup
html=driver.page_source
bsObj=BeautifulSoup(html,"xml")
jxtits=bsObj.find_all("ul",{"class":"list"})[0].find_all("li")
#jxtits=bsObj.find_all("div",{"class":"jx-tit"})[0].find_next_sibling().find_all("li")
#用bs4找到要爬取的内容,直接找到包括所有热点上一层的tag.这一层下find_all每一条热点的tag;
#用find_next_sibling()有点多此一举,直接用要的tag就行了呀

print("index",",","title",",","url")
for i,jxtit in enumerate(jxtits):
#因为要索引,采用enumerate(),为遍历的对象添加序号索引 
    try:
        text=jxtit.find_all("img")[0]["alt"]
    except:
        text=jxtit.find_all("div",{"class":"lazyload-placeholder"})[0].text
    try:
        url=jxtit.find_all("a")[0]["href"]
    except:
        print(jxtit)
#这里就是找tag,找对找准就行;except是因为可能出现懒加载,but这个例子里面有没有都差不多...
    print(i+1,",",text,",",url) 

代码也不长,注释一大堆…还是太vegetable了。
有一点点心得是:注意缩进注意缩进注意缩进
and知乎爬虫写不来…登录都不行…等我上铂金了可能就会写了吧…

你可能感兴趣的:(chromedriver&一个用selenium完成爬虫的例子)