python爬虫爬取QQ号
2023-02-26 10:21:39 时间
这个爬虫是拿来练手的,可以爬取网络中的QQ号,然后存储到本地。
(福利推荐:阿里云、腾讯云、华为云服务器最新限时优惠活动,云服务器1核2G仅88元/年、2核4G仅698元/3年,点击这里立即抢购>>>)
import urllib.request
import ssl
import re
import os
from collections import deque #导入队列库
def writeFileBytes(htmlBytes,topath):
with open(topath,'wb') as f: f.write(htmlBytes)
def writeFileStr(htmlBytes,topath):
with open(topath, 'w') as f: f.write(str(htmlBytes))
def QQCrawler(url, topath):
headers = { "User-Agent": "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; 360SE)" } #修改一下浏览器表头(User-Agent) req = urllib.request.Request(url, headers=headers) # 请求体 context = ssl._create_unverified_context() #加上此行可以爬取https格式 response = urllib.request.urlopen(req, context=context) HTMLStr = response.read() # writeFileBytes(HTMLStr,r"G:python代码爬虫QQ号.html?userCode=wrvvs1rm") # writeFileStr(HTMLStr,r"G:python代码爬虫QQ号.txt") htmlStr=str(HTMLStr) pat=r'b(([w-]+://?|www[.])[^s()<>]+(?:[wd]+[wd]+|([^[:punct:]s]|/)))' #网址的正则表达式 re_url=re.compile(pat) urlsList=re_url.findall(htmlStr) urlsList = list(set(urlsList)) #找到所有的QQ pat=r"[1-9][d]{5,9}" #QQ号的正则表达式 re_q=re.compile(pat) #编译 qqList=re_q.findall(htmlStr) qqList=list(set(qqList)) #过滤重复QQ号 f=open(topath,'a') #写入文件 for qq in qqList: f.write(qq+"n") f.close() return urlsList #返回一个存储这个网页中的超链接
队列,得到上一页网址,然后加入队列,爬取每个网页的QQ号
def center(url,topath):
queue=deque() queue.append(url) while len(queue)!=0: targetUrl=queue.popleft() urlList=QQCrawler(targetUrl, path) for item in urlList: tempUrl=item[0] queue.append(tempUrl)
url = r”https” #爬取链接
path = r”G:python代码爬虫QQ号.txt” #存储路径
QQCrawler(url,path)
center(url,path)
还存在一些问题:比如https://www.fgba.net/,url的正则表达式存在问题,不能匹配所有的链接。运行时也存在问题,爬取到本地的数据只有2M多,程序就停止运行了。
你还在原价购买阿里云、腾讯云、华为云、天翼云产品?那就亏大啦!现在申请成为四大品牌云厂商VIP用户,可以3折优惠价购买云服务器等云产品,并且可享四大云服务商产品终身VIP优惠价,还等什么?赶紧点击下面对应链接免费申请VIP客户吧:
相关文章
- 基于Python的人脸识别考勤监控
- Python答题游戏
- Python调用百度API实现图像识别
- Python全栈疫情分析项目
- Python-基础-if语句快速入门
- Python-基础-循环语句快速入门
- Python-GUI签名
- 【2】VScode 搭建python和tensorflow环境
- python 简易时钟
- 【1】windows系统如何安装后缀是whl的python库
- 【2】超级详细Python-matplotlib画图,手把手教你画图!(线条颜色、大小、线形、标签)
- 【4】python读写文件操作---详细讲解!
- 【2】Anaconda下:ipython文件的打开方式,Jupyter Notebook中运行.py文件,快速打开ipython文件的方法!
- 【编写环境一】遇到常见python函数处理方式
- 【编写环境二】python库scipy.stats各种分布函数生成、以及随机数生成【泊松分布、正态分布等】
- Python xlwt数据保存到 Excel中以及xlrd读取excel文件画图
- 强化学习技巧三:Python多进程
- 强化学习技巧五:numba提速python程序
- 【7】python_matplotlib 输出(保存)矢量图方法;画图时图例说明(legend)放到图像外侧;Python_matplotlib图例放在外侧保存时显示不完整问题解决
- 【8】python_matplotlib改变横坐标和纵坐标上的刻度(ticks)、sagemath-list_plot()调整图例(legend)中点的数量、Matplotlib画各种论文图