当前位置:网站首页 > Java基础 > 正文

java爬虫(java爬虫和python爬虫区别)



JavaScript具有以下一些主要特点:

Python是一种通用编程语言:

Python更加通用和易学,适合初学者和从事数据分析、机器学习等工作的开发者;而JavaScript则更擅长web开发和交互式应用程序。

这里主要讲解python的爬虫代码书写,我们使用colab平台进行代码的编写。

Google Colab(Colaboratory)是一个基于浏览器的免费Jupyter Notebook环境,它为用户提供了一个免费的云端计算平台,用于编写和运行代码,尤其适合机器学习和数据科学领域的开发和研究。

首先我们先安装依赖。

# python 请求库

! pip install requests

# python dom 查找

! pip install beautifulsoup4

接下来我们就开始去编写获取数据的代码,这里我们通过豆瓣电影排行榜 (douban.com)这个链接去获取电影的数据。

首先看以下代码:

# 引入请求库

import requests

from bs4 import BeautifulSoup

# 爬取url里的电影数据

def fetch_movie_list(url):

  headers = {

    'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36 Edg/125.0.0.0'

  }

  response = requests.get(url,headers = headers)

  if(response.status_code == 200):

    soup = BeautifulSoup(response.text,'html.parser')

    movie_list = []

    movies = soup.select('#wrapper #content .article .item')

    print(len(movies))

    all_movies_text = ''.join([movie.prettify() for movie in movies])

    print(all_movies_text)

    print(movies)

    # 拿到数据就交给ai分析

    return movies

  else:

    print("失败")

url = "https://movie.douban.com/chart"

# 爬取url里的电影数据

movies = fetch_movie_list(url)

这段代码我们就能够获取到相应的html数据了。

解释一下这段代码之前我们先聊一下前置知识。

向一个网站发送请求,到底得到了什么?

向一个网站发送请求的本质就是获取该网站返回的HTML页面。这个过程可以分为以下几个步骤:

1. 构建HTTP请求:

2. 发送HTTP请求:

3. 接收响应:

4. 获取HTML页面:

这个过程中,获取HTML页面是关键目标。HTML页面包含了网站的结构、内容和样式信息,通过解析和分析这个HTML。

既然我们向一个网站发送请求可以获取到html结构,这不就代表着我们可以通过分析html来获取数据。

接下来就继续分析上面的代码。

讲解一下:

headers = {

    'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36 Edg/125.0.0.0'

}

这个请求头其实就是告诉网站,我是真人,不是程序

那么我们要如何获取到自己浏览器的这份User-Agent数据呢?

很简单,只需要在浏览器的控制台输入navigator.userAgent就可以获取到了

继续分析,我们以前写JavaScript的代码时,在遇到了发送请求时,都是需要去await的。

但是为什么Python代码不需要这样做呢?

这就是因为JavaScript是异步的,Python是同步的。

JavaScript就需要使用关键词await将异步代码块变为同步代码。

到此这篇java爬虫(java爬虫和python爬虫区别)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • Java字符串转为数字(java怎么将字符串转换成数字)2025-05-13 21:18:10
  • java阻塞队列使用(java阻塞队列线程安全吗)2025-05-13 21:18:10
  • Json字符串转实体类(json字符串转json对象java)2025-05-13 21:18:10
  • java面试题八股文面试(java八股文是什么意思)2025-05-13 21:18:10
  • java spring实战(javabean spring)2025-05-13 21:18:10
  • 天气预报接口api(天气预报接口java)2025-05-13 21:18:10
  • java中字符串转int(java字符转int类型)2025-05-13 21:18:10
  • java面试题库及答案(java 面试题库)2025-05-13 21:18:10
  • 华为odjava面试题(华为odjava机试题)2025-05-13 21:18:10
  • yum安装rzsz(yum安装java)2025-05-13 21:18:10
  • 全屏图片