目录
爬虫
什么是爬虫?嗯!爬在网页上的虫子!虫子干嘛呢?悄悄吃掉网页上的数据(嘻嘻),就是拿到网页信息啦!先来看看效果吧。
注意哦这不是搜索哦,看看头上尊贵的localhost吧!那既然页面都拿到了那么数据不随便拿吗?ok完毕可以玩元神了。
代码展示(整体)
from selenium import webdriver
from time import sleep
from selenium.webdriver.common.by import By
#新建模拟的chrome浏览器对象
driver = webdriver.Chrome()
#go to 百度
driver.get("http://www.baidu.com")
#等2秒
sleep(2)
#搜索“猫猫”
driver.find_element(By.XPATH,'//*[@id="kw"]').send_keys("猫猫")
#点击搜索
driver.find_element(By.XPATH,'//*[@id="su"]').click()
#等2秒
sleep(2)
#点击导航栏的图片
driver.find_element(By.XPATH,'//*[@id="s_tab"]/div/a[1]').click()
#等2秒
sleep(2)
#取出html(可以根据需求自己按需取出就行)
page_source = driver.page_source.encode('utf-8')
#写入html
with open("baidu.html","wb") as f:
f.write(page_source)
#关闭浏览器
driver.quit()
安装环境
缺什么包安装什么包
代码思路
模拟真人得到数据的方式然后用代码进行实现,下面我将教你如何通过代码仿真人的操作,注意:!!!请记住!!!你的任意一个点击操作,或输入操作都要记录下来,然后通过xpath找到这些按钮或文本框的所在,然后交给仿真selenium来帮你各种点击或输入。!!!注意!!!一定要在需要一定的响应时间的地方停留几秒钟,不然浏览器没加载出来你就爬,很有可能啥也爬不到。如果爬到的东西不是你想要的多半是时间没给够!!!
打开浏览器,并打开百度
记住要等2秒哟,不如人家页面可能还没加载出来勒
driver = webdriver.Chrome()
driver.get("http://www.baidu.com")
#等2秒
sleep(2)
找到搜索栏输入“猫猫”点击搜索
找到搜索栏(注意看注意看,找按钮就只教一次!!!)
按一下F12进入开发者模式点击圈出来的按钮,
然后点击搜索框
选出他的xpath然后加进我们代码中,然后加入进我们的find_element中就可以啦,然后给框框里面输入我们的猫猫。(别问我为什么是猫猫,我就是喜欢猫猫啦。 o(~▽~)d,猫猫超可爱的啦,(想选美女的,主要是怕不太绿色))
#搜索“猫猫”
driver.find_element(By.XPATH,'//*[@id="kw"]').send_keys("猫猫")
同上找到百度一下的按钮
#搜索“猫猫”
driver.find_element(By.XPATH,'//*[@id="kw"]').send_keys("猫猫")
#点击搜索
driver.find_element(By.XPATH,'//*[@id="su"]').click()
#等2秒
sleep(2)
点击导航栏的图片
#点击导航栏的图片
driver.find_element(By.XPATH,'//*[@id="s_tab"]/div/a[1]').click()
#等2秒
sleep(2)
最后爬取就好啦
记住这里要utf-8编码,不然文字部分是乱码哦。
我这里是将其存入html,当然也可以根据自己的需求拿到其他想要的东西啦。
#取出html(可以根据需求自己按需取出就行)
page_source = driver.page_source.encode('utf-8')
#写入html
with open("baidu.html","wb") as f:
f.write(page_source)
#关闭浏览器
driver.quit()
okok我要元神,启动!!!
关于以后(一些废话)
本人目前学生,没有说有很强的计算机的技术,希望大家如果发现有什么问题都可以和我说,不要骂我。不会的地方也可以和我讨论,虽说我也可能不能马上解决你的问题,但是还是希望和大家多加交流的。以后呢,也会不定期更新,具体更新时间看心情,但保证一定是原创,如果对我的风格有什么建议的也欢迎指出。(之后可能会更新pyppeteer,就是高级版的selenium,可以实现异步爬取,更容易模仿人的行为,不容易被发现,然后selenium其实还有个js代码防止说是被检测出来使用的机器浏览器,可以更改参数,但是比较代码比较多这里就没放,感兴趣的可以问我。还是希望我的博客可以简短易懂而且有趣味性)