基础爬虫流程

本文最后更新于:2025年5月29日 晚上

基本 package

  • urllib python自带的package,可以实现基本的网页内容获取
  • requests 主要实现各种访问请求
  • bs4 主要用到其中的 BeautifulSoup 类来实现对内容的提取
  • re 使用正则表达式来实现对内容的提取
  • jieba 可以配合停用词表实现对文中字词的频次进行统计
  • lxml 可以在 BeautifulSoup 中使用作为html解析器,速度要比bs自带的要快。也可以使用其中的etree实现定位,解析,提取

基础爬虫的结构与过程

基础爬虫的基本流程

  1. 确定url或其列表
  2. 确定请求头hearders
  3. 使用 urllib, requests 等实现对网页中html文件的获取
  4. 使用 BeautifulSoup, re 等实现对目标内容的提取
  5. 清洗,整理,存储

基础爬虫的代码大纲

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)

爬虫进阶

  • bs4re 等解析,定位,提取的工具的使用
  • 反反爬技术
    • ip代理(如果买要买socked)
    • user-agent 池
    • selenium, pyppeteer模拟浏览器
    • 其他
  • requests-html (需要更改源码解决中文渲染乱码问题),将动态页面转变为静态
  • 模拟浏览器也可以实现爬取动态网页
  • 利用 Scrapy 等爬虫框架进行更加系统的开发管理