python蜘蛛XXwenku

文章目录


前言

Python是一种灵活多用的计算机程序设计语言, 使用Python进行的编程语法特色更强,具有更高的可读性。Python对于初级程序员来说非常的友好,语法简单易懂,应用广泛,实用性强。Python是一种解释型语言,解释型语言指的是源代码先被翻译成中间代码,再由解释器对中间代码进行解释运行,这就意味着Python的跨平台性很好,所有支持Python语言的解释器都可以运行Python。Python是交互式语言,它可以直接在交互界面直接执行代码,大多数Linux系统都使用Python语言作为基本配置。Python是面向对象语言,这意味着Python支持面向对象的风格或代码封装在对象的编程技术。

一、python爬虫是什么?

网络爬虫(又被称为网页蜘蛛,网络机器人),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。
通俗地讲,我们把互联网比作一张大蜘蛛网,每个站点资源比作蜘蛛网上的一个结点,爬虫就像一只蜘蛛,按照设计好的路线和规则在这张蜘蛛网上找到目标结点,获取资源。

二、使用步骤

1.引入库

代码如下(示例):

import requests//引入requests第三方库帮助我们不通过浏览器的情况下直接用python get到某个网站
import re//引入re python内置模块,re为(正则表达式)引入目的帮助我们在爬取网站内容是进行遍历(以便我们能更加清楚的,有条目的爬取想要的内容)

2.先利用浏览器中的检查或开发者工具找到本网站的请求头(user-agent等必要的数据)

代码如下:

url = a
header = {'User-Agent': 'Googlebot'}
res = requests.get(url=url,headers=header)

该处使用的url网络请求的数据。

3.用导入的re(正则表达式)来进行第一步的遍历

re_res = re.findall(' <div style="border:1px solid #C8DBD3;padding:20px;line-height:24px;">(.*)</mod>',raw_text,re.DOTALL)
#re.DOTALL:可以将多行内容进行匹配给正则表达式使用(进行修改)
re_res = (''.join(re_res))#      去除[''],将换行符实行为真的换行,并供re.DOTALL使用
text = str(re_res)#将get到的网页内容转换为字符串形式,以便于一下的字符的替换等
text_1 = re.sub('[\n\u3000 <div>\nbr\x0c//]', '', text)  #第一次过滤:将一系列特殊字符删去

3.用导入的re(正则表达式)来进行第二步的遍历

#第一种方法:.replace与re.sub用法相同也是将个别字符串进行替换
#text_2 = text_1.replace(r'\n','').replace(r'\u3000','').replace(r'\x0c','').replace(r'&#34','').replace(r'&#39','')#第二次过滤:将一系列的特殊字符删去
#第二种方法用正则表达式re.sub()语句进行字符串的替换
text_2 = re.sub('\n\u3000\x0c&#34&#39','',text_1)

4.在pycharm的终端下先输出get到的结果(进行确认是否是想要的数据),及get到的文件通过python的控制命令自动写入到自建text中

print(''.join(text_2))
f = open("xxx.txt","w",encoding='utf-8') #encoding=’utf-8‘将编码设为标准的utf-8格式
f.write(text_2)
f.close()

5.完整代码

import requests
import re
a=input('请输入要get的XXwenku网址:')
url = a
header = {'User-Agent': 'Googlebot'}
res = requests.get(url=url,headers=header)
raw_text = res.text
re_res = re.findall(' <div style="border:1px solid #C8DBD3;padding:20px;line-height:24px;">(.*)</mod>',raw_text,re.DOTALL)
#re.DOTALL:可以将多行内容进行匹配给正则表达式使用(进行修改)
re_res = (''.join(re_res))#      去除[''],将换行符实行为真的换行,并供re.DOTALL使用
text = str(re_res)#将get到的网页内容转换为字符串形式,以便于一下的字符的替换等
text_1 = re.sub('[\n\u3000 <div>\nbr\x0c//]', '', text)  #第一次过滤:将一系列特殊字符删去
#re.sub用法:re.sub('Q','w',text)将text中的Q都换成w

#第一种方法:.replace与re.sub用法相同也是将个别字符串进行替换
#text_2 = text_1.replace(r'\n','').replace(r'\u3000','').replace(r'\x0c','').replace(r'&#34','').replace(r'&#39','')#第二次过滤:将一系列的特殊字符删去
#第二种方法用正则表达式re.sub()语句进行字符串的替换
text_2 = re.sub('\n\u3000\x0c&#34&#39','',text_1)
print(''.join(text_2))
f = open("xxx.txt","w",encoding='utf-8') #encoding=’utf-8‘将编码设为标准的utf-8格式
f.write(text_2)
f.close()

这里我只是粗略的get了一下,如果大家有兴趣的话可以在此基础上行进改进。

(仅供学习使用!!!如有不法行为,必追究责任!)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

淼学派对

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值