详细且简单的爬虫简单教学(小白看了之后直呼:爬虫就这????)
安装pycharm
本文着重介绍如何实现爬虫,pycharm的安装各位可以自行找相关资料下载安装,本文不再提供
一:新建一个工程
打开pycharm,按照如图所示新建一个工程
按照自己的习惯自行设置文件工程所在的目录以及名字,本例中将该工程放在pycharm的安装目录下,工程名为spider_test
点击右下角Create按钮即创建成功,如图所示,红框中是该工程下主要的子目录和文件,是成功创建工程后自动生成的
二:安装scrapy
这里简单介绍一下Scrapy,因为是面向小白,此处不过多介绍,感兴趣的小可爱们可以自行搜索了解哦
• scrapy 是一个功能非常强大的爬虫框架,它不仅能便捷地构建request请求,还有强大的 selector 能够方便地解析 response响应。
• 可以使用这个工具将爬虫程序工程化、模块化。
• scrapy是一个基于Twisted的异步处理框架,是纯python实现的爬虫框架,其架构清晰,模块之间的耦合程度低,可扩展性也很强。
那么如何安装并且使用scrapy呢,稍安勿躁,请各位接着往下面看
首先我们需要在该工程下安装Scrapy
点击File->Setting,如图
找到Project: spider_test>Project Interpreter,点击Python Interpreter,在此处查看、下载、删除python库和包
来到如图所示画面,点击左上角的加号+
出现如图所示窗口,在如图所示的搜索框中输入Scrapy,找到Scrapy库,点击左下角install安装按钮,进行安装,安装过程需要几分钟,请耐心等待提示安装成功。
安装其他需要的库:
按照上述安装Scrapy的方法,继续安装wheel、pywin32两个库,安装好后已安装库栏中显示如图:(查看已安装库中是否已经有如下几个库),都有了表示安装成功,可以进行下一步啦
三:创建Scrapy工程
在文件管理器中,找到Scrapy的安装目录,如图所示,一般就在之前创建的工程下(spider_test->venv->Scripts)
在该目录下进入cmd命令行窗口(直接在目录窗口键盘输入cmd加回车即可进入)
在命令行中输入如下指令加回车创建一个Scrapy工程,工程名为test1
出现如图所以回应表示创建成功
回到pycharm,在如下目录中有如下几个文件表示成功。可以进行下一步
四:如何使用scrapy
1、新建一个begin.py文件
在test1工程之下,新建一个名为begin.py文件,和scrapy.cfg在同一级目录下,操作如图所示
创建好后的情况如图所示
2、编辑begin.py中的内容
在刚刚创建好的begin.py文件中输入如下内容(可直接复制下面代码粘贴)
from scrapy import cmdline
cmdline.execute("scrapy crawl bupt".split())
#bupt为爬虫的名字,在spider.py中定义
如图所示
3、修改items.py中的内容
复制下面的代码将原内容全部覆盖
import scrapy
class MyItem(scrapy.Item):
# define the fields for your item here like:
school = scrapy.Field()
link = scrapy.Field()
粘贴时出现如图所示提示,直接点击OK就行
4、新建一个spider.py文件
在spiders目录下新建一个spider.py文件
在该文件中粘贴以下内容:(此处代码为核心部分,尽量读懂)
本爬虫爬取的是北京邮电大学官网中的一处,如图所示:
import scrapy
from test1.items import MyItem #从items.py中引入MyItem对象
class mySpider(scrapy.spiders.Spider):
name = "bupt" #爬虫的名字是bupt
allowed_domains =["bupt.edu.cn/"] #允许爬取的网站域名
start_urls = ["https://www.bupt.edu.cn/yxjg1.htm"]
#初始网站地址,即爬虫爬取的第一个网站
def parse(self, response): # 解析爬取的内容
item = MyItem() # 生成一个在items.py中定义好的Myitem对象,用于接收爬取的数据
for each in response.xpath("/html/body/div/div[2]/div[2]/div/ul/li[4]/div/ul/*"):#用xpath来解析html,div标签中的数据,就是我们需要的数据。
item['school'] = each.xpath("a/text()").extract() #学院名称在text中
item['link']= each.xpath("a/@href").extract() #学院链接在href中
if (item['school'] and item['link']): # 去掉值为空的数据
yield(item) # 返回item数据给到pipelines模块
修改好的如图所示:
5、修改pipelines.py
打开如下图所示的pipelines.py文件
将下面的代码复制粘贴进去覆盖原内容:
import json
class MyPipeline(object):
def open_spider(self,spider):
try:
self.file = open('MyData.json',"w",encoding="utf-8")
except Exception as err:
print(err)
def process_item(self,item,spider):
dict_item = dict(item) #生成字典对象
json_str = json.dumps(dict_item,ensure_ascii=False) + "\n"#生成json串
self.file.write(json_str)
return item
def close_spider(self,spider):
self.file.close() #关闭文件
继续点击ok
6、修改setting.py文件
再文件代码中找到如图所示代码(大概再65行~67行),将其取消注释,并将test1Pipeline改成MyPipeline
点击ok
修改后如图所示:
五、运行spider.py
前面所有准备工作都已经准备好了,万事俱备只欠运行,此时是不是迫不及待地想运行,看效果了呢
但是还差一步哦,心急出不了热豆腐,为什么这么说呢,别着急,接着往下操作
运行之后,此时文件出现报错
解决办法:接着按照图操作:
将如下框中内容修改成
D:\Pycharm\PyCharm 2020.3.4\spider_test\venv\Scripts\test1\begin.py
其实就是将其中的\test1\spiders删除,再将spider.py改成begin.py
点击ok,修改成功,成功后右上角变成这样,然后点击运行标志运行
出现下图所示红色字体表示运行成功
成功啦!!!
然后可以看到此处已经生成了一个MyData.json文件,使用pycharm或者记事本打开此文件,即可看到你的成果啦
效果如下:
感谢!!
恭喜你,到此,一个初学者爬虫你已经运行成功啦,本文面向纯爬虫小白,因此只介绍了操作过程,所有代码都是现成的,想进一步学习爬虫的相关知识,只会这一些肯定是远远不够的,希望大家可以根据上面的操作,把自己不懂的地方逐一去了解,相信你能进步的更多。喜欢我的文章话可以点赞加关注支持一下博主哇,博主一定感谢万分,对于上述有什么不懂的地方,也欢迎评论区留言,我一定积极尽自己所能热心回答