现在呢我们使用python进行简单的百度贴吧的数据爬去 主要是比较简单
我们使用requests模块 没有的小伙伴去下载一个 cmd打开输入pip install requests
首先呢我们要对所要爬取的网页进行接口分析 找到其中的规律,在进行下一步 :
python贴吧的地址
'http://tieba.baidu.com/f?ie=utf-8&kw=python&fr=search&red_tag=o1225398434'
c 贴吧的地址
"http://tieba.baidu.com/f?ie=utf-8&kw=c"
java贴吧的地址
"http://tieba.baidu.com/f?ie=utf-8&kw=java&fr=search"
结论
kw=谁 就是谁的贴吧
但是,后边的参数都是什么呢?所以这里需要判断参数
接口可能存在多个参数,则需要判断真正的能用得上的参数
经过试验 http://tieba.baidu.com/f?kw= 对结果不会产生影响
接下来进行数据爬取
import requests
name = input("请输入您要爬取得贴吧名称")
url= "http://tieba.baidu.com/f?kw="+name
response = requests.get(url)
file_name = name+".html"
with open(file_name,'w',encoding='utf-8')as fp:
fp.write(response.text)
经上 总结下爬虫的基本流程
1 分析接口(地址) 得到可用的url
2 网络访问
3 数据保存
保存数据时 这里用的是text,还可以用其他的方式 比如content
contentde 实际意义
获取 音频 视频 图片等非字符类型的数据
response = requests.get("")
print(response.content)
with open("logo.png","wb") as fp:
fp.write(response.content)
在实际开发当中 有些时候直接拿text会乱码
content ---->>> text
那如果我们取贴吧上的前20页数据呢
同样的 步骤
分析接口
第1页 "http://tieba.baidu.com/f?&kw=java"
第2页 "http://tieba.baidu.com/f?kw=java&pn=50"
第3页 "http://tieba.baidu.com/f?kw=java&pn=100"
第n页 "http://tieba.baidu.com/f?kw=java&pn=%d'%(n-1)*50"
import requests
import os
name = input("请输入你需要爬去的贴吧名称")
# 加判断
os.makedirs("java")
for i in range(1, 21, 1):
# 生成url
url = 'http://tieba.baidu.com/f?kw=java&pn=%d' % ((i - 1) * 50)
print(url)
# 网络请求
response = requests.get(url)
# 保存
# 路径:window的路径不能直接拿过来用
# 解决办法:1 使用\\ 2 元字符r""
# C:\\n\\a.py 或者是r'c:\n\a.py'
file_name = "java\\第%d.html" % (i)
with open(file_name, 'w', encoding='utf-8') as fp:
fp.write(response.text)
这里生成了一个文件夹来存放爬取到的数据进行了保存
需要注意的是路径问题,window的路径不能直接使用,需要我们进行修改之后使用,同时进行了字符串的拼接
将所使用的url地址进行了改变,