基础爬虫流程
本文最后更新于:2025年5月29日 晚上
基本 package
- urllib python自带的package,可以实现基本的网页内容获取
- requests 主要实现各种访问请求
- bs4 主要用到其中的 BeautifulSoup 类来实现对内容的提取
- re 使用正则表达式来实现对内容的提取
- jieba 可以配合停用词表实现对文中字词的频次进行统计
- lxml 可以在 BeautifulSoup 中使用作为html解析器,速度要比bs自带的要快。也可以使用其中的etree实现定位,解析,提取
基础爬虫的结构与过程
基础爬虫的基本流程
- 确定url或其列表
- 确定请求头hearders
- 使用 urllib, requests 等实现对网页中html文件的获取
- 使用 BeautifulSoup, re 等实现对目标内容的提取
- 清洗,整理,存储
基础爬虫的代码大纲
import requests
from bs4 import BeautifulSoup
url = 'https://www.baidu.com'
# 单个url地址的查询
#urls = ['https://www.taobao.com/?start={}'.format(str (i)) for i in range(0, 100, 10)]
# url列表
request_headers = {'User-Agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/115.0',
'Referer': 'https://movie.douban.com',
'Connection': 'keep-alive',
}
# 请求头可以在网页中使用检查(开发者工具),在网络一栏可获取自己的请求头
# 也可以访问https://www.useragentstring.com/pages/useragentstring.php获取各浏览器的请求头
def getHtmlText(url):
resp = requests.get(url=url, headers=request_headers)
#获取响应
if resp.status_code==200:
html_txt = resp.text
soup_doc = BeautifulSoup(html_txt)
# 解析
a = soup_doc.find('a')
# 定位
print(a.get_text())
# 提取 输出
else:
print(resp.status_code)
if __name__ == '__main__':
getHtmlText(url)
爬虫进阶
- bs4 ,re 等解析,定位,提取的工具的使用
- 反反爬技术
- ip代理(如果买要买socked)
- user-agent 池
- selenium, pyppeteer模拟浏览器
- 其他
- requests-html (需要更改源码解决中文渲染乱码问题),将动态页面转变为静态
- 模拟浏览器也可以实现爬取动态网页
- 利用 Scrapy 等爬虫框架进行更加系统的开发管理