首页 > 其他分享 >极简爬虫通用模板

极简爬虫通用模板

时间:2023-05-05 09:34:48浏览次数:32  
标签:极简 text 爬虫 headers link requests response 模板

网络爬虫的一般步骤如下:

1、确定爬取目标:确定需要爬取的数据类型和来源网站。

2、制定爬取策略:确定爬取哪些网页、如何爬取和频率等。

3、构建爬虫程序:使用编程语言(如Python)实现爬虫程序,通过HTTP请求获取网页内容,并进行解析和处理。

4、数据存储:将爬取到的数据存储到数据库或文件中,便于后续处理和分析。

5、处理异常情况:处理因网络故障、网页解析错误等原因导致的异常情况。

6、遵守规则:遵守网络爬虫的相关规定,如robots协议、网站的访问频率限制等。

7、定期更新:定期更新爬虫程序,以适应网站的变化和更新。

一、准备工作

1、获取网页

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

import requests
link = 'https://网址xxxxx/'
response  = requests.get(link)

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

print(response.text)`

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

需要用到bs4库

from bs4 import BeautifulSoup
soup = BeautifulSoup(response.text,'html.parser')

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

soup = BeautifulSoup(response.text,'html.parser').find_all(name='div',class_="top-ok")

3、保存信息

with open('book.txt','a+') as f:
        f.write(m.text+'\n')

二、爬虫程序最小框架

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

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

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

2编码方式设定

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

response  = requests.get(link ,headers = headers)
response.encoding = 'UTF-8'

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

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设置成自己得才能正常运行。

import requests
from bs4 import BeautifulSoup
headers = {'User-Agent': 'xxx此处换为自己的信息xxxx'}
link = 'http://jshk.com.cn/'
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')

标签:极简,text,爬虫,headers,link,requests,response,模板
From: https://www.cnblogs.com/q-q56731526/p/17373150.html

相关文章

  • 5月4日:unordermap/set,哈希以及哈希常用的拉链法,开放地址法,以及模板的特化相关应用
    起处较为流行的数据储存方式为树形结构,再加上红黑树等优秀数据结构的发展,直到今天二叉平衡搜索树也经常被应用在各种方面,但是c++库里面还有两个与map/set很像的容器unorderedmap,他们的调用与普通的map几乎一样,有着非常优秀的查找时间复杂度,只是不能像二叉树哪样层序遍历得到顺序的......
  • 模板
    6-1有序数组(类模板)单位 福州大学实现一个类模板,它可以接受一组数据,能对数据排序,也能输出数组的内容。每行输入的第一个数字为0,1,2或3:为0时表示输入结束;为1时表示将输入整数,为2时表示将输入有一位小数的浮点数,为3时表示输入字符。如果第一个数字非0,则接下来将输入......
  • 打卡 有序数组(类模板)
    实现一个类模板,它可以接受一组数据,能对数据排序,也能输出数组的内容。每行输入的第一个数字为0,1,2或3:为0时表示输入结束;为1时表示将输入整数,为2时表示将输入有一位小数的浮点数,为3时表示输入字符。如果第一个数字非0,则接下来将输入一个正整数,表示即将输入的数据的数量。从每行......
  • 数组排序输出(函数模板)
    一、问题描述:对于输入的每一批数,按从小到大排序后输出。一行输入为一批数,第一个输入为数据类型(1表示整数,2表示字符型数,3表示有一位小数的浮点数,4表示字符串,0表示输入结束),第二个输入为该批数的数量size(0<size<=10),接下来为size个指定类型的数据。输出将从小到大顺序输出数据。函......
  • 类模板
    实现一个类模板,它可以接受一组数据,能对数据排序,也能输出数组的内容。每行输入的第一个数字为0,1,2或3:为0时表示输入结束;为1时表示将输入整数,为2时表示将输入有一位小数的浮点数,为3时表示输入字符。如果第一个数字非0,则接下来将输入一个正整数,表示即将输入的数据的数量。从每行......
  • 模板集合(持续更新中)
    线段树//线段树namespaceSeg_tree{#definels(u<<1)#definers(u<<1|1)#definemid((l+r)>>1) typedeflonglongll; constintN=1e5+5; usingstd::max; usingstd::min; llval[N<<2],laz[N<<2],maxx[N......
  • springboot 分析源码欢迎页和图标-> thymeleaf模板引擎常用语法->扩展
    欢迎页: icon: 注意点: thymeleaf模板引擎1.使用thymeleaf模板引擎前要导入对应依赖包2.阅读源码:根据源码说明我们可以将html文件放置在templates目录下,然后通过controller进行跳转即可 controller类://在templates下的东西需要通过controller类来跳转,//需要导入......
  • 模板库
    火车头:#pragmaGCCoptimize(3)#pragmaGCCtarget("avx")#pragmaGCCoptimize("Ofast")#pragmaGCCoptimize("inline")#pragmaGCCoptimize("-fgcse")#pragmaGCCoptimize("-fgcse-lm")#pragmaGCCoptimize(&qu......
  • TypeScript 学习笔记 — 模板字符串和类型体操(十五)
    目录基本介绍字符串类型体操实操环节1.字符串首字母大写CapitalizeString2.获取字符串第一个字符FirstChar3.获取字符串最后一个字符LastChar4.字符串转元组StringToTuple5.元组转字符串TupleToString6.重复字符串RepeatString7.字符串分割SplitString8.获取字符串......
  • Python爬虫需要哪些基础
    Python爬虫是指使用Python语言编写程序,自动化地访问Web页面并抓取其中的信息。以下是Python爬虫的基础知识:爬虫的工作原理:爬虫程序通过网络请求获取Web页面的HTML源码,然后使用正则表达式或解析器提取所需要的信息。常用的爬虫库:Python中常用的爬虫库包括requests、BeautifulSoup......