python scratch file_Python crawler:scratch的Pycharms构建一个scratch环境+创建一个scratch项目实例,爬虫,Scrapy,之,PyCharm...

本文介绍了如何在Win10环境下利用PyCharm搭建Scrapy环境,创建Scrapy项目,并编写一个爬虫示例,用于抓取CSDN博客首页的文章标题、类型、URL、发布时间和阅读量。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、基本环境

win10

PyCharm

Python 3.6

二、scrapy 环境搭建

安装两个python模块:

Twisted、scrapy

。在cmd中安装会快捷一点。

安装Twisted: 执行 pip install twisted

安装scrapy:执行 pip install scrapy

【注】安装完成后,执行 pip list 检查以下上述两个模块是否安装成功。

三、在pycharm创建一个Scrapy项目

1.

在pycharm中创建一个普通项目(Pure Project 即可),如下图。

52a8283dfd9277852ac065ec819020b8.png

2.

在cmd中cd至项目所在文件夹,执行

scrapy startproject ScrapyDemo

,如下。

【注】也可在pycharm自带的Terminal中执行

crapy startproject ScrapyDemo。

a47827312e291090423f0d6224e26b01.png

执行完之后,pycharm中的项目如下图

a798296f8d70c5fbb8527500c050ce30.png

各文件功能解释

../ScrapyDemo/

爬虫项目

ScrapyDemo/

爬虫文件夹

__init__.py

必须存在

items.py

字段 可以写需要爬取对象的类

middlewares.py

中间件

pipelines.py

管道文件

settings.py

爬取配置

spiders/

开发位置

scrapy.cfg

项目配置

四、写一个可以运行的scrapy示例

下面示例的功能是爬取博主第一页博文的基本属性(标题、类型、url、发布时间、阅读量),结果如下图。

6e65ca0bb03f1ff9c60b9f9cf7479696.png

1.写完代码后的项目结构如下图。

284c5c2e9e588caec1c53e11f7239f63.png

2.各文件代码

(1)items.py

# See documentation in:

# https://doc.scrapy.org/en/latest/topics/items.html

import scrapy

class ArticleItem(scrapy.Item):

title = scrapy.Field() # 文章标题

type = scrapy.Field() # 文章类型(原创/转载/翻译)

url = scrapy.Field() # 文章链接

date = scrapy.Field() # 文章发布日期

read_num = scrapy.Field() # 文章阅读量

(2)在

ScrapyDemo / spiders

下新建文件

spiderDemo.py

import scrapy

from ScrapyDemo.items import ArticleItem

class CSDNArticle(scrapy.Spider) :

name = 'get_scdn_article' # 爬虫名称

allowed_domains = ['blog.csdn.net/Aibiabcheng'] # 爬虫域

start_urls = ['https://blog.csdn.net/Aibiabcheng'] # 爬虫地址

def output_article(self, article_list): # 输出

for item in article_list :

print(item['type'], '\t' ,item['title'])

print(item['date'], '\t', item['read_num'], '\t', item['url'], '\n')

def parse(self, response) :

article_list = []

res = response.xpath('//div[@class=\"article-list\"]/div')

for item in res :

try :

# 获取 文章属性

type = item.xpath('./h4/a/span/text()').extract()[0]

url = item.xpath('./h4/a/@href').extract()[0]

title = item.xpath('./h4/a/span[@class=\'article-type type-1 float-none\']/following::text()').extract()[0].strip()

date = item.xpath('./div[@class=\'info-box d-flex align-content-center\']/p/span[@class=\'date\']/text()').extract()[0].strip()

read_num = item.xpath('./div[@class=\'info-box d-flex align-content-center\']/p/span[@class=\'read-num\']/span[@class=\'num\']/text()').extract()[0]

# 创建对象 并 赋值

article = ArticleItem()

article['title'] = title

article['type'] = type

article['url'] = url

article['date'] = date

article['read_num'] = read_num

article_list.append(article) # 暂存

except :

continue

self.output_article(article_list) # 输出

(3)修改文件 settings.py.

# Obey robots.txt rules

ROBOTSTXT_OBEY = False # 此处为修改

# 添加如下,按照自己实际的填写

DEFAULT_REQUEST_HEADERS = {

"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.92 Safari/537.36",

'Accept': 'image/webp,image/apng,image/*,*/*;q=0.8',

}

(4)在

ScrapyDemo

下新建文件

start.py.

from scrapy import cmdline

cmdline.execute("scrapy crawl get_scdn_article".split()) # get_scdn_article为spiderDemo中的name

3.在 pycharm 中运行 scrapy 项目。

(1)选择“Edit Configurations…”

f4f109a10f6b4e6248385f9ead309974.png

(2)添加新的 Configurations, 选择 python; 然后进行配置。

6ab3425a2e51dfd627b7f97ba22b42d3.png

3eb434bcfe281c56ce203c9d6835125b.png

(3)像运行普通python程序一样,执行即可。运行成功如下图。

fc9b5f4f32abb4dc93a20df715f2e7c2.png

解决办法:

pip install pypiwin32

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值