前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >极简爬虫教程

极简爬虫教程

作者头像
一石匠人
发布2022-04-24 19:43:45
5460
发布2022-04-24 19:43:45
举报
文章被收录于专栏:儿童编程

爬虫总体上可以分为步:获取网页、解析网页(也就是找到想要的信息)、保存信息

一、准备工作

1.获取网页

需要用到requests库,最常用得是get()方法

代码语言:javascript
复制
import requests
link = 'https://网址xxxxx/'
response  = requests.get(link)

这样就获取了网页,想要进一步查看网页,需要用到text属性

代码语言:javascript
复制
print(response.text)`

2、解析网页(也就是找到想要的信息)

需要用到bs4库

代码语言:javascript
复制
from bs4 import BeautifulSoup
soup = BeautifulSoup(response.text,'html.parser')

找到对应标签需要用到find_all方法

代码语言:javascript
复制
soup = BeautifulSoup(response.text,'html.parser').find_all(name='div',class_="top-ok")

3、保存信息

代码语言:javascript
复制
with open('book.txt','a+') as f:
        f.write(m.text+'\n')

二、爬虫程序最小框架

结合上面所说,爬虫最小框架得代码为

代码语言:javascript
复制
import requests
from bs4 import BeautifulSoup
# 获取网页
link = 'https://网址xxxxx/'
response  = requests.get(link)
# 解析网页
soup = BeautifulSoup(response.text,'html.parser').find_all(name='div',class_="top-ok")
# 保存信息
with open('book.txt','a+') as f:
    f.write(m.text+'\n')

三、额外说明

为了顺利爬取网站信息,有几个必备技能一定要了解。

1.headers

为了对付“反爬虫”,我们需要让程序觉得是人在操作,最基本得方法是设置headers

代码语言:javascript
复制
headers = {'User-Agent': 'xxx此处换为自己的信息xxxx'}
link = 'https://网址xxxxx/'
response  = requests.get(link ,headers = headers)

2.编码方式设定

有时候爬取下来得信息会出现乱码,这时候需要通过设置编码解决。常见得编码方式为UTF-8、GBK

代码语言:javascript
复制
response  = requests.get(link ,headers = headers)
response.encoding = 'UTF-8'

所以我们得爬虫最小框架进化成了下面得形式

代码语言:javascript
复制
import requests
from bs4 import BeautifulSoup
# 获取网页
headers = {'User-Agent': 'xxx此处换为自己的信息xxxx'}
link = 'https://网址xxxxx/'
response  = requests.get(link ,headers = headers)
response.encoding = "UTF-8"
# 解析网页
soup = BeautifulSoup(response.text,'html.parser').find_all(name='div',class_="top-ok")
# 保存信息
with open('book.txt','a+') as f:
    f.write(m.text+'\n')

四、举例

举例子。此处需要把headers设置成自己得才能正常运行。

代码语言:javascript
复制
import requests
from bs4 import BeautifulSoup
headers = {'User-Agent': 'xxx此处换为自己的信息xxxx'}
link = 'https://wap.etgushi.com/'
response  = requests.get(link ,headers = headers)
response.encoding = 'UTF-8'
print(response.text)
soup = BeautifulSoup(response.text,'html.parser').find_all(name='div',class_="top-ok")
for n in soup:
   n = n.find_all(name='a')
   for m in n:
       with open('book.txt','a+') as f:
           f.write(m.text+'\n')
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022.04.13 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、准备工作
    • 1.获取网页
      • 2、解析网页(也就是找到想要的信息)
        • 3、保存信息
        • 二、爬虫程序最小框架
        • 三、额外说明
          • 1.headers
            • 2.编码方式设定
            • 四、举例
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档