【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识别或者模拟滑动滑块来绕过验证。
相关推荐
Learner7 分钟前
Python异常处理
java·前端·python
superman超哥11 分钟前
Context与任务上下文传递:Rust异步编程的信息高速公路
开发语言·rust·编程语言·context与任务上下文传递·rust异步编程
步达硬件12 分钟前
【Matlab】批量自定义图像处理
开发语言·matlab
军军君0114 分钟前
Three.js基础功能学习七:加载器与管理器
开发语言·前端·javascript·学习·3d·threejs·三维
liulilittle16 分钟前
OPENPPP2 网络驱动模式
开发语言·网络·c++·网络协议·信息与通信·通信
mjhcsp19 分钟前
C++ AC 自动机:原理、实现与应用全解析
java·开发语言·c++·ac 自动机
huihuihuanhuan.xin20 分钟前
后端八股之java并发编程
java·开发语言
hui函数22 分钟前
Python系列Bug修复|如何解决 pip install 安装报错 Backend ‘setuptools.build_meta’ 不可用 问题
python·bug·pip
谢的2元王国22 分钟前
prompt工程逐渐成为工作流的重要一部分:以下是一套多节点新闻处理外加事实增强的文章报告日志记录
python