1. python 所有技术,软件,程序的中枢
2. 用到的python库
1)requests 用来发出get请求,获取网站的response
pip install requests安装
常用的就一个
requests.get(url,headers).text
把网页的源代码弄下来,然后类型是str
2)BeautifulSoup 用来解析网页文件
res=requests.get(url,headers).text
content = BeautifulSoup(res,'html.parser')
用源代码生成bs object,后面就对这个bs object解析
常用的就find,find_all,find_all_next找到想要的元素
content.find('标签名',attrs={‘class’:'类别'})
获取到元素里面的属性值和文本之类的
someelement.text, someelement.get_text, someelement['href']
还能用selector,没用过
3)selenium 模仿用户和网页的互动
driver = webdriver.chrome()创建一个浏览器驱动
driver.get('url') 打开指定的网址
然后直接driver.find_elements_by_xpath之类的各种定位元素,找到要互动的元素,还可以直接取得元素的文本。主要是为了应对使用ajax的网页,网址没变但是局部内容发生了改变,就用selenium获取
爬虫的话分三步,先发出请求,然后获取数据,最后存起来。
1.请求部分 请求的话主要就是可能需要headers上面加些修饰,用过的只有User Agent。
2. 获取数据 难得就是定位元素
总结一下其实selenium和requests的用法逻辑完全不一样。
Requests是提出请求,获取response之后相当于对一个线下的死文本进行操作。一旦出现ajax等动态更新的情况就无能为力了,毕竟是死文本
Selenium是直接打开浏览器,自动和网页互动,并且相当于可以实时获取元素,很好的解决了实时更新的问题,完全可以自动点击下一页之类的按钮更新页面然后获取更新的元素。
接触到需要的整个网页之后就是find之类的找到想要的元素提取文本,下载图片之类的