【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识别或者模拟滑动滑块来绕过验证。
相关推荐
19893 分钟前
【零基础学AI】第26讲:循环神经网络(RNN)与LSTM - 文本生成
人工智能·python·rnn·神经网络·机器学习·tensorflow·lstm
JavaEdge在掘金8 分钟前
Redis 数据倾斜?别慌!从成因到解决方案,一文帮你搞定
python
ansurfen13 分钟前
我的第一个AI项目:从零搭建RAG知识库的踩坑之旅
python·llm
Thomas_YXQ15 分钟前
Unity URP法线贴图实现教程
开发语言·unity·性能优化·游戏引擎·unity3d·贴图·单一职责原则
前端付豪17 分钟前
20、用 Python + API 打造终端天气预报工具(支持城市查询、天气图标、美化输出🧊
后端·python
前端付豪23 分钟前
19、用 Python + OpenAI 构建一个命令行 AI 问答助手
后端·python
Zz_waiting.26 分钟前
Javaweb - 10.4 ServletConfig 和 ServletContext
java·开发语言·前端·servlet·servletconfig·servletcontext·域对象
Touper.1 小时前
JavaSE -- 泛型详细介绍
java·开发语言·算法
sun0077001 小时前
std::forward作用
开发语言·c++·算法
amazinging1 小时前
北京-4年功能测试2年空窗-报培训班学测开-第四十三天
python·学习