前言
大家好这里是一个小h的爬虫教程,今天我们来学习一下最基础的爬虫教学,有基础的可以直接过,小白多多了解哈,那么废话少说,一起来进行我们的爬虫之旅吧
正题
我们今天学习爬虫基础通过案例来学习,亲爱的同志们,学习的时候不要懒惰哦,最好用手多敲几遍,那么今天的案例有爬取百度贴吧的某大学论坛,和爬取豆瓣读书,定位法爬取腾讯求职网站(当然这个方法是不行的,我们只是为了学习知识。)那些就让我们上强度从代码开始
爬取百度贴吧某大学论坛代码
#先使用urllib.request进行导入爬取
import re
import urllib.request
def hbmzb(url,i):
req=urllib.request.Request(url)
req.add_header('User-Agent','Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36 Edg/118.0.2088.69')
html1=urllib.request.urlopen(url).read()
fhandle=open('E:/桌面/'+str(i/50)+'.html','wb')
fhandle.write(html1)
fhandle.close()
for i in range(0,150,50):
url='https://tieba.baidu.com/f?kw=%E6%B9%96%E5%8C%97%E6%B0%91%E6%97%8F%E5%A4%A7%E5%AD%A6&ie=utf-8&pn='+str(i)
hbmzb(url,i)
代码讲解
以下几点是你必须知道的:
1.爬虫库:urllib,request,这个基础的爬虫库,如果使用不成功请用pip安装下载的很慢的话可以搜索k同学镜像使用镜像下载
2.本例还导入了正则表达式,什么叫正则表达式呢,就是替换字符,python基础大家已经学过吧相当于‘\n’,就是这样的意思。我们使用正则表达式要导入re库。
3.我们创建一个函数叫hbmz,第一步我们发起一个请求,使用urllib库中的request中的Request当然要用点号调用然后输入我们的变量url就可以进行爬取了。
4.但是还有一点就是我们要把我们的请求头改装一下就可以加一个请求头,为什么要加请求头呢,那么就是 防止对面网站不让我们爬取,我们伪装成浏览器的模式爬取。我们在哪里看这个请求头呢,请看下面这个图片。我这里就随便找一个网站实验一下。当然先要按下F12键,如果没有显示的话就按CTRL+R键进行刷新。
5.将获取的页面用read()方法进行读取数据并用open()的方法进行打开文件,和write()方法进行数据写入最后用close方法进行关闭文件和保存
6.最后一个for循环直接抬走这个小爬虫,为什么要用for循环呢,我们要爬取前十条但是在url是静态的,所以我们要用一个for循环使url变化。
总结
url是爬虫的根,数据是爬虫的核心,数据解析是我们的战术,爬虫库和使用方法是我们的武器,这样一个小小爬虫就已经完结。那么今天就到这了,下一期在见。