从零开始的 Python 爬虫速成指南 + 21年最新python学习资料分享

本文是一份Python爬虫速成指南,从基础的准备工作开始,包括安装Python和Scrapy框架,创建爬虫项目。接着,通过实例演示如何使用XPath解析HTML,提取页面上的帖子标题和URL。此外,还介绍了如何处理翻页信息,实现递归爬取,以及利用Scrapy的Request函数抓取每个帖子的内容。文章还涵盖了Scrapy的Pipelines和Middleware,用于处理和存储爬取的数据,如设置User-Agent和使用代理。最后,提到了一些Scrapy的配置参数,如下载延迟和重试机制,以及如何在PyCharm中配置运行环境。
摘要由CSDN通过智能技术生成

入门

0.准备工作

需要准备的东西: Python、scrapy、一个IDE或者随便什么文本编辑工具。

1.技术部已经研究决定了,你来写爬虫。

随便建一个工作目录,然后用命令行建立一个工程,工程名为miao,可以替换为你喜欢的名字。

scrapy startproject miao

随后你会得到如下的一个由scrapy创建的目录结构

image

在spiders文件夹中创建一个python文件,比如miao.py,来作为爬虫的脚本。

内容如下:

image

2.跑一个试试?

如果用命令行的话就这样:

cd miao

scrapy crawl NgaSpider

你可以看到爬虫君已经把你坛星际区第一页打印出来了,当然由于没有任何处理,所以混杂着html标签和js脚本都一并打印出来了。

解析

接下来我们要把刚刚抓下来的页面进行分析,从这坨html和js堆里把这一页的帖子标题提炼出来。

其实解析页面是个体力活,方法多的是,这里只介绍xpath。

0.为什么不试试神奇的xpath呢

看一下刚才抓下来的那坨东西,或者用chrome浏览器手动打开那个页面然后按F12可以看到页面结构。

每个标题其实都是由这么一个html标签包裹着的。举个例子:

[合作模式] 合作模式修改设想

可以看到href就是这个帖子的地址(当然前面要拼上论坛地址),而这个标签包裹的内容就是帖子的标题了。

于是我们用xpath的绝对定位方法,把class='topic’的部分摘出来。

1.看看xpath的效果

在最上面加上引用:

from scrapy import Selector

把parse函数改成:

def parse(self, response):

selector = Selector(response)

在此,xpath会将所有class=topic的标签提取出来,当然这是个list

这个list里的每一个元素都是我们要找的html标签

content_list = selector.xpath("//*[@class=‘topic’]")

遍历这个list,处理每一个标签

for content in content_list:

此处解析标签,提取出我们需要的帖子标题。

topic = content.xpath(‘string(.)’).extract_first()

print topic

此处提取出帖子的url地址。

url = self.host + co

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值