爬虫阶段思考

2024-06-24 08:44
文章标签 爬虫 思考 阶段

本文主要是介绍爬虫阶段思考,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

内容:写这篇文章是因为最近帮同学改了很多的爬虫代码,感触良多。

我用豆瓣为例,并不是不会用别的,而是这个我个人感觉最经典。然后还会写我遇到的一些问题以及解决方法。

首先,我们得先知道怎样爬取。我用的scrapy框架爬取。

我对此图的理解就是:

从spiders中获得一个请求(REQUEST),通过引擎传递给调度器,之后再返回给引擎,引擎把url封装好后传递给下载器,下载器将资源下载好后返回一个应答(RESPONSE),之后引擎将该应答发送给spiders,让其进行抓取,返回给引擎,然后解析出实体(Items)交给实体管道进行下一步操作。

ok,原理就是这样。下面来开始讲步骤。

pip install scrapy

首先要在虚拟环境中下载scrapy库,建议在网络好的环境里下载,最好在pycharm中配置镜像源。

scrapy

之后找到Teiminal 中输入这个库名,先进入这个库中,看看有哪些操作。

根据指示,开始建项目。

scrapy startprojrct pythonProject26

这里就建了一个项目。

cd projectProject26

返回上一级,我们会发现操作列表中有crawl,有了这个我们才可以进行网站爬取。

scrapy genspider db https://movie.douban.com/top250
scrapy crawl db

ok,目前为止,准备工作已经搞定。

接下来我们会看到它帮我们建立了这几个py文件:

 

然后我们需要在这个项目下建立一个调试文件,我记作main.py,

import os.path
import sys
from scrapy.cmdline import execute
currentFile = os.path.abspath(__file__)
currentPath = os.path.dirname(currentFile)
# print(currentPath)
sys.path.append(currentPath)
execute(["scrapy","crawl","db"])

这个是为了提取到这个项目的路径,让它可以贯穿整个项目(我是这样理解的)。

之后就是编写主程序。它自动给我们弄好了要爬取的域名,还有一个parse函数,只要前面的步骤没错的都应该是这样。

接下来我们先编辑settings.py文件,这个主要是取消对优先级的注释并改掉robots协议的遵循规则。 

接下来是db.py:

这是它自己创建出来的内容。接下来我继续编写。

先明确目标,我要爬取的是电影名字,导演,评分和简介。所以我采用了先总后分的方式,先提取总资源,再利用循环从中提取出想要的数据。

首先就是总数据:

接下来用循环取出数据:

之后我把它放在字典里:

之后为了让它一直爬取,用了一个生成器函数。

这只是一页的东西,现在多爬几页。

这个需要找每一页网址的规律。

然后就来到items.py:

接下来我把它保存在一个data1.txt里面。在pipelines.py:

我相信大家能看懂的,看不懂再说。

接下来就是连接数据库:

我搞的有点复杂,因为我刚开始不知道有另一种方法,所以我就记录我的方法了。

首先,在数据库里创建一个新表。

然后,我们需要在pycharm中下载一个库。

pip install mysql-connector-python

 然后就是连接数据库。

import mysql.connector# 连接到MySQL数据库
conn = mysql.connector.connect(host="your_host",user="your_username",password="your_password",database="my_database"
)# 创建一个游标对象
cursor = conn.cursor()# 打开文本文件
with open('your_data.txt', 'r') as file:for line in file:# 去除换行符title = line.strip()# 插入数据sql = "INSERT INTO my_table (title) VALUES (%s)"cursor.execute(sql, (title,))# 提交事务
conn.commit()# 关闭游标和连接
cursor.close()
conn.close()

里面的host,port,user,password,database,这些东西都要自己改。


ok,这就是完整的思路及代码。

我在帮别人改代码的过程中,发现了很多问题。首先就是网站选取。

我一直以为这个不是问题,但是终究是我认为,这不得找点有规律的网站吗?

其次就是数据提取,我用的是xpath ;

还有代码编写错误。

就不展开了,有问题欢迎来问我,这篇就这样了。

 

 

 

 

 

 

这篇关于爬虫阶段思考的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1089669

相关文章

关于如何更好管理好数据库的一点思考

本文尝试从数据库设计理论、ER图简介、性能优化、避免过度设计及权限管理方面进行思考阐述。 一、数据库范式 以下通过详细的示例说明数据库范式的概念,将逐步规范化一个例子,逐级说明每个范式的要求和变换过程。 示例:学生课程登记系统 初始表格如下: 学生ID学生姓名课程ID课程名称教师教师办公室1张三101数学王老师101室2李四102英语李老师102室3王五101数学王老师101室4赵六103物理陈

Python爬虫-贝壳新房

前言 本文是该专栏的第32篇,后面会持续分享python爬虫干货知识,记得关注。 本文以某房网为例,如下图所示,采集对应城市的新房房源数据。具体实现思路和详细逻辑,笔者将在正文结合完整代码进行详细介绍。接下来,跟着笔者直接往下看正文详细内容。(附带完整代码) 正文 地址:aHR0cHM6Ly93aC5mYW5nLmtlLmNvbS9sb3VwYW4v 目标:采集对应城市的

大型网站架构演化(一)——初始阶段的网站架构

大型网站的技术挑战主要来自于庞大的用户,高并发的访问和海量的数据,任何简单的业务一旦需要处理数以P计的数据和面对数以亿计的用户,问题就会变得很棘手。大型网站架构主要是解决这类问题。         大型网站都是从小型网站发展而来,网站架构也是一样,是从小型网站架构逐步演化而来。小型网站最开始时没有太多人访问,只需要一台服务器就绰绰有余,这时的网站架构如图所示。

关于微信没有接入鸿蒙NEXT的思考

6月21日,纯血鸿蒙发布,国内的质疑声终于停止,不再被人喊叫换皮 Android 了.就连编程语言都是华为自研的。 可是发布会后微信却成了热点,因为余承东在感谢了一圈互联网企业,如:淘宝、支付宝、美团、京东、抖音、今日头条、钉钉、小红书、微博、B站、高德、WPS等等. 唯独没有感谢腾讯. 中国互联网巨头只有哪么几家,腾讯、阿里、字节、拼多多、美团、百度、京东、华为 他们这些派系又诞生了无数

基于RAG的知识库AI代理机器人,问题思考

基于RAG的知识库AI代理机器人,问题思考 知识库内容分类 对于普通非qa问答格式的知识内容 在分段存储时,需要手动调整,保证每个分段的内容意思完整,不被分割,当然段落也不宜过长,保证内容表达的意思到不可分割为止就行 对于qa问答格式的知识内容 通常需要对问题增加格外索引,因为fastgpt的模式是将问题和回答,作为完整的文本作为向量化的坐标,当问题和回答的内容过长时,使用问题向量化匹配

简单的php爬虫程序

<?php /** * 爬虫程序 -- 原型 * * BookMoth 2009-02-21 */ /** * 从给定的url获取html内容 * * @param string $url * @return string */ function _getUrlContent($url){ $handle = fopen($url, "r"); if($handle){ $content =

Python爬虫基础-两个实用库

用Python学爬虫最大的好处就是python有很多实用库,免去了我们自己造轮子的环节,那么找哪些轮子呢?Python爬虫有两个比较实用的库,Requests和Beautiful Soup。我认为学好这两个库,Python爬虫也就学的差不多了。 是什么? Requests is the only Non-GMO HTTP library for Python, safe for human

当我们写爬虫的时候,我们实际在做什么?

当我开始学习爬虫的时候,我在网上也开始找相关教程,大多数都是xx分钟学会爬虫一类的文章。并不是否定这些文章的价值,因为他们的确“教会”我如何爬取网页。但我不想停留只会使用工具这一层面上,这就是我想谈谈自己对爬虫的理解。 思考一下我们是怎么样上网的呢? 打开浏览器,习惯性输入百度看看网络连接有没有问题或者输入谷歌看看能不能科学上网。然后我现在的习惯是打开简书首页,看看有没有新的技术类文章或者是鸡汤

宇哥强调!7月份必须开始强化阶段(附规划)

七月开始强化不晚,但是要开始了! 张宇老师说:七月,也就是暑假是大家学习的最佳时机,这个时候要大量的做题! 如果你是三月份开始备考的,那么到了七月份,基础应该复习的差不多了,现在刚好是六月中旬,马上就要七月份了。也该开始准备强化复习了,但是进入强化之前,我建议大家对基础进行一个收尾工作,因为毕竟前面学的知识点是很久以前的了,不复习一下,很容易就忘掉了。 给大家准备了一个list,可以按照这个

技术性屏蔽百度爬虫已经一周了!

很久前明月就发现百度爬虫只抓取、只收录就是不给流量了,加上百度搜索体验越来越差,反正明月已经很久没有用过百度搜索,目前使用的浏览器几乎默认搜索都已经修改成其他搜索引擎了,真要搜索什么,一般都是必应+谷歌结合着使用。所以就一直在纠结要不好屏蔽百度爬虫,上周借助 CloudFlare 的【随机加密】先技术性的屏蔽百度爬虫了。 说起来比较好笑都 2024 年了,早就号称支持 HTTPS 的百度爬虫