首页 > 编程语言 >爬虫程序的实现

爬虫程序的实现

时间:2024-03-06 13:22:06浏览次数:19  
标签:实现 top 程序 爬虫 content headers import csv

0.学习爬虫的入门

看的第一个视频就是手把手的讲解怎么写爬虫程序,对小白非常的友好,强烈推荐。(写新的程序就是照葫芦画瓢)

【Python+爬虫】爆肝两个月!拜托三连了!这绝对是全B站最用心(没有之一)的Python+爬虫公开课程,从入门到(不)入狱 !_哔哩哔哩_bilibili

1.插件

所有的爬虫程序都要用到requests插件,有了这个才能实现对网页的访问(好像是),而在获取了网站的数据后还要进行数据的处理,这是一个非常繁杂的过程,需要用到bs4包里的"BeautifulSoup" 插件,就可以化繁为简。

 import requests
 from bs4 import BeautifulSoup

2.前期配置

绝大部分网站都不能允许爬虫程序打直球地访问,在写代码之前要先伪装一下自己的代码,让网站以为是一个正经八百的浏览器在浏览他。

随便找一个网页,右键点击检查,在网络界面中,选择任意一串,之后找到”User-Agent“这一项,把他复制后按照如下形式写出

headers = {
    "User-Agent": "xxxxxxxx"(此处为你获取的数据)
}

至此,前期所有的准备都结束了,可以正式进行代码的实现了

3.代码主体

用"url"来代表进行访问的网址。

url  = 'xxx'

接下来使用两个插件开始访问和获取网站的数据

response = requests.get(url, headers=headers)
content = response.content.decode('utf8')
soup = BeautifulSoup(content, "lxml")

之后通过筛选来的得出自己想要的内容

4.代码实例(包含csv)

以https://www.ign.com.cn/top-100-180327/20749/top100/li-shi-zui-jia-top-100you-xi-pan-dian为例

# 爬ign历史100佳游戏排名 原网址https://www.ign.com.cn/top-100-180327/20749/top100/li-shi-zui-jia-top-100you-xi-pan-dian
# 排名顺序从100到1

import requests
import csv
from bs4 import BeautifulSoup


url = 'https://www.ign.com.cn/top-100-180327/20749/top100/li-shi-zui-jia-top-100you-xi-pan-dian'

headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36"
}

response = requests.get(url, headers=headers)
content = response.content.decode('utf8')
soup = BeautifulSoup(content, "lxml")
ranks = soup.findAll(id="id_title")
output = ranks
print(type(output))
with open('游戏排名.csv', 'a+', encoding='utf-8',newline='') as f:
    w = csv.writer(f)
    w.writerows(output)

with open('游戏排名.csv', 'r', encoding='utf-8',newline='') as f:
    csv_reader = csv.reader(f)
    for row in csv_reader:
        print(row)



完成了数据的获取

标签:实现,top,程序,爬虫,content,headers,import,csv
From: https://www.cnblogs.com/tianticheng/p/18056310

相关文章

  • Python实现五子棋人机对战的二次开发
    Python实现人机对战的二次开发    在网上找到了一个使用python实现五子棋游戏,其中通过加入一个简单的AI算法实现了人机对战的功能,我觉得这个人机对战还是蛮有意思的,下面我分析一下五子棋游戏的规则、棋盘表示方法、AI算法的实现原理以及代码实现过程。最后二次开发时引入新的......
  • springboot 应用程序 pom节点版本冲突问题解决思路
    springboot应用程序pom节点版本冲突问题解决思路一、首先 mavenhelper 查看是否有冲突 conflicts 二、allDenpendencies  查询如poi 查询冲突 ps: <scope>compile</scope>  compile:这是默认的依赖项范围。指定为compile的依赖项将在编译、测试和......
  • 在.NET程序中整合微软的Playwright,使用 Playwright 的最佳实践和技巧
    Playwright是一个由Microsoft开发的开源工具,用于自动化Web浏览器的测试和操作。它提供了一种跨浏览器、跨平台的自动化解决方案,可以在Chromium、Firefox和WebKit(Safari)等多种浏览器上进行测试和操作。本篇随笔介绍Playwright的一些特点,以及能够完成的工作,并总结一些使用P......
  • Java 实现全链路日志跟踪唯一ID
    Java实现全链路日志跟踪唯一ID日志痛点:使用Spring-Aop切面的时候,只能切控制层或者服务层的开始位置与结束位置的数据(也就是请求出入参),对于逻辑日志无法定位跟踪普通打印日志的时候是这样子的1.如果参数里面没有seq传递过来LOGGER.error("xxx不能为空");2.参数里面有se......
  • 简易版webpack的实现步骤
    目录简易版webpack的实现步骤1、npm的bin2、文件的读写3、webpack是如何做的4、模块遍历(图结构)5、模块脚本拼接简易版webpack的实现步骤1、npm的bin*npminit-y*package.json添加配置########{"bin":{"llpack":"bin/index.js"}}########入口文件头部添......
  • m基于FPGA的RS+卷积级联编译码实现,RS用IP核实现,卷积用verilog实现,包含testbench测
    1.算法仿真效果Vivado2019.2仿真结果如下:  2.算法涉及理论知识概要        级联码是一种通过将两种或多种纠错码结合使用来提高纠错能力的编码方案。在RS+卷积级联编码中,通常首先使用卷积码对原始数据进行编码,以增加冗余并提供一定的纠错能力。然后,将卷积码的输......
  • InnoDB存储引擎对MVCC的实现
    一 多版本并发控制(Multi-VersionConcurrencyControl)1、读操作(SELECT):当一个事务执行读操作时,它会使用快照读取。快照读取是基于事务开始时数据库中的状态创建的,因此事务不会读取其他事务尚未提交的修改。具体工作情况如下:对于读取操作,事务会查找符合条件的数据行,并选择符......
  • Java 抽象类与方法:实现安全性与代码重用
    Java内部类简介在Java中,可以嵌套类(即类内部的类),称为内部类。嵌套类的目的是将属于一起的类分组,从而使您的代码更可读和可维护。访问内部类要访问内部类,请创建外部类的对象,然后创建内部类的对象:classOuterClass{intx=10;classInnerClass{inty=5;}......
  • 使用数组实现一个线性表
    线性表的存储结构顺序表:静态存储分配,编译时确定容量(相当于数组,如Javanewint[5]),用一段地址连续的存储单元依此存储线性表的数据元素如何实现一个线性表方法接口对于线性表中一些常用的方法,这些方法是线性表中经常使用的publicinterfaceListMethods<T>{voidclear......
  • Mapbox实战项目(1)-栅格图片图层实现地图方位展示
    需求背景需要实现地图上展示一个类似于罗盘的标记,随着地图的缩放、切换、旋转等,能够在地图的中央指示出地图的方位。系统自带的方位控件太小,在特殊业务场景下不够醒目。技术选型Mapbox实现分析官网已经有地图上展示图片矢量图层的demo,“Addarasterimagetoamaplayer......