简单的爬虫实现

现在呢我们使用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

扫描二维码关注公众号,回复: 6038081 查看本文章

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地址进行了改变,

猜你喜欢

转载自blog.csdn.net/weixin_44303465/article/details/89561616
今日推荐