【Python基础】爬取豆瓣电影Top250+爬取知乎专栏文章标题

📢:如果你也对机器人、人工智能感兴趣,看来我们志同道合✨

📢:不妨浏览一下我的博客主页【https://blog.csdn.net/weixin_51244852

📢:文章若有幸对你有帮助,可点赞 👍 收藏 ⭐不迷路🙉

📢:内容若有错误,敬请留言 📝指正!原创文,转载请注明出处

文章目录

  • 一、Python爬虫基础知识
    • [1. 什么是爬虫?](#1. 什么是爬虫?)
    • [2. 爬虫的基本原理](#2. 爬虫的基本原理)
    • [3. 爬虫的技术栈](#3. 爬虫的技术栈)
    • [4. 爬虫的对象](#4. 爬虫的对象)
    • [5. 爬虫的使用及环境依赖构建](#5. 爬虫的使用及环境依赖构建)
  • 二、Python爬虫实例
    • [1. 爬取豆瓣电影Top250](#1. 爬取豆瓣电影Top250)
    • [2. 爬取知乎专栏文章标题](#2. 爬取知乎专栏文章标题)
  • 三、反爬机制

一、Python爬虫基础知识

1. 什么是爬虫?

爬虫是一种自动获取网页内容的程序,它可以从互联网上抓取所需的信息。爬虫可以用于各种场景,如数据挖掘、信息收集等。

2. 爬虫的基本原理

爬虫的基本原理是通过发送HTTP请求(如GET或POST)来获取网页内容,然后解析网页内容,提取所需信息。常用的解析方法有正则表达式、BeautifulSoup和XPath等。

3. 爬虫的技术栈

常见的爬虫技术栈包括:

  • 编程语言:Python
  • 网络库:requests、urllib
  • 解析库:BeautifulSoup、lxml、re
  • 数据库:MySQL、MongoDB
  • 框架:Scrapy、PySpider

4. 爬虫的对象

爬虫对象主要包括以下几个部分:

  • 用户代理:模拟浏览器访问,避免被网站识别为爬虫。
  • 请求头:设置请求头,模拟浏览器行为。
  • 请求方法:如GET、POST等。
  • 请求参数:如URL参数、表单参数等。
  • 响应对象:包含响应状态码、响应头、响应内容等信息。

5. 爬虫的使用及环境依赖构建

使用爬虫需要先安装相关库,如requests、BeautifulSoup等。可以使用pip进行安装:

bash 复制代码
pip install requests
pip install beautifulsoup4

二、Python爬虫实例

1. 爬取豆瓣电影Top250

目标网址:https://movie.douban.com/top250

代码实现:

python 复制代码
import requests
from bs4 import BeautifulSoup

def get_movie_info(url):
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'}
    response = requests.get(url, headers=headers)
    soup = BeautifulSoup(response.text, 'html.parser')
    movie_list = soup.find('ol', class_='grid_view')
    for movie_li in movie_list.find_all('li'):
        detail = movie_li.find('div', class_='hd')
        movie_name = detail.find('span', class_='title').text
        movie_url = detail.a['href']
        print(movie_name, movie_url)

if __name__ == '__main__':
    base_url = 'https://movie.douban.com/top250?start='
    for i in range(0, 250, 25):
        url = base_url + str(i)
        get_movie_info(url)

2. 爬取知乎专栏文章标题

目标网址:https://zhuanlan.zhihu.com/p/xxxx

代码实现:

python 复制代码
import requests
from bs4 import BeautifulSoup

def get_article_title(url):
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'}
    response = requests.get(url, headers=headers)
    soup = BeautifulSoup(response.text, 'html.parser')
    title = soup.find('h1', class_='Post-Title').text
    print(title)

if __name__ == '__main__':
    url = 'https://zhuanlan.zhihu.com/p/xxxx'
    get_article_title(url)

三、反爬机制

  1. IP限制:网站会限制同一IP地址的访问次数,超过限制后需要更换IP地址。
  2. User-Agent检测:网站会检测请求头中的User-Agent,如果发现是爬虫,可能会拒绝访问。可以通过设置不同的User-Agent来绕过检测。
  3. Cookie和Session:网站会使用Cookie和Session来识别用户,可以通过模拟登录或者使用cookie池来绕过识别。
  4. 验证码和滑块验证:网站会使用验证码和滑块验证来防止自动化操作,可以通过OCR识别或者模拟滑动滑块来绕过验证。
相关推荐
dme.11 分钟前
Javascript之DOM操作
开发语言·javascript·爬虫·python·ecmascript
teeeeeeemo16 分钟前
回调函数 vs Promise vs async/await区别
开发语言·前端·javascript·笔记
加油吧zkf21 分钟前
AI大模型如何重塑软件开发流程?——结合目标检测的深度实践与代码示例
开发语言·图像处理·人工智能·python·yolo
t_hj22 分钟前
python规划
python
ejinxian36 分钟前
PHP 超文本预处理器 发布 8.5 版本
开发语言·php
czhc114007566337 分钟前
Linux 76 rsync
linux·运维·python
软件黑马王子1 小时前
C#系统学习第八章——字符串
开发语言·学习·c#
阿蒙Amon1 小时前
C#读写文件:多种方式详解
开发语言·数据库·c#
悠悠小茉莉1 小时前
Win11 安装 Visual Studio(保姆教程 - 更新至2025.07)
c++·ide·vscode·python·visualstudio·visual studio
Da_秀1 小时前
软件工程中耦合度
开发语言·后端·架构·软件工程