开篇有些话
- 爬虫,你创造它,它给予你!
- 我的爬虫是参考着唐松作者的《Python网络爬虫从入门到实践》学习的
- 学习网站:www.santostang.com
本章内容
实现爬虫的步骤
第一步:获取页面
爬虫获取页面的步骤我分为如下几点:
- 明确你所要获取页面的域名
// 本次要获取的页面是:www.santostang.com
url ="http://www.santostang.com/" #定义所要爬取的网站地址
- 利用requests的headers伪装成浏览器访问
headers ={"User-Agent":" Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:80.0) Gecko/20100101 Firefox/80.0"} #伪装成浏览器
–注:
伪装信息获取方法:
1.推荐浏览器使用FireFox、Chrome
2.利用浏览器,进入你所要爬取的网站
3.F12进入控制台(笔记本可能要按住Fn,再点击F12)
4.找到下图所示信息:(加入代码,如上诉代码所示)
- 发送请求
// get函数第一个参数是域名信息,第二个参数是伪装信息
//在使用requests之前,需要用import导入requests包
r = requests.get(url,headers) #发送请求申请
import requests #导入所需要的的包
- 打印出获取到的页面的text
print(r.text)
获取页面结果如下:
第二步:提取所需要的数据
-
在以上实现的代码基础上,现在我想单独拿出某个标题,如下图所示
-
在完成上面获取页面的代码之后,我们获得了一个html的对象,而我们在进行提取数据时,所需要的是soup对象,所以在这里利用BeautifulSoup这个库,将HTML的代码转化成soup对象
from bs4 import BeautifulSoup #导入所需要的的包
//利用BeautifulSoup对对象进行转换 //其中第一个参数是要转化的对象,第二个参数是指定解析器 soup = BeautifulSoup(r.text,"lxml")
-
接下来就可以利用find方法捕捉到所要的标题
//按照上面图片里的头,写入find title = soup.find("h1",class_="post-title").a.text.strip() print(title) #打印捕获到的标题
第三步:储存数据
-
还没有开始数据库之前,学习的是写入文件中,步骤如下:
–with open 打开文件
–write方法写入文件
–close方法关闭文件 -
具体代码如下:
with open('title.txt','a+') as f: f.write(title) f.close()
-
成功编译后,在项目文件夹下,生成title.txt文件
-
打开文件,以及将捕获的数据存入该文件
-
效果如下图:
整体代码
-
日志2-代码总
#! usr\bin\python # conding: UTF-8 import requests #导入所需要的的包 from bs4 import BeautifulSoup ''' 1.确定要爬取的内容 2.伪装浏览器 3.requests发起申请 ''' url ="http://www.santostang.com/" #定义所要爬取的网站地址 headers ={"User-Agent":" Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:80.0) Gecko/20100101 Firefox/80.0"} #伪装成浏览器 r = requests.get(url,headers) #发送请求申请 # print(r.text) ''' 上面获取了整个页面的Html 为了使用提取数据的find方法,需要将整个html文件转换成soup对象 这里使用的方法是:BeatifulSoup ''' soup = BeautifulSoup(r.text,"lxml") title = soup.find("h1",class_="post-title").a.text.strip() print(title) ''' 上面已经完成了数据的提取 现在将提取的数据存入文件中 首先用with open 打开文件 在用write命令写入文件 最后关闭文件 ''' with open('title.txt','a+') as f: f.write(title) f.close()
欢迎小伙伴指导,一起进步!