python3爬取带密码的网站_Python3 爬取网站收藏数超过70的 情侣网名
[Python] 纯文本查看 复制代码# coding=utf-8
# python 3.7
import urllib.request,urllib.error
import re
import threading
import multiprocessing
from time import sleep
# 保存网页内容
def dataFilter():
# 设置了全局参数(方便),最好还是传参数
global htmlQueue # 任务队列
global some # log文件
global lock # 文件锁
while True:
html = htmlQueue.get() # 从任务队列中获取任务(数据)
if html is None: exit(0) #退出线程
# 正则表达式获取数据
favorites = re.compile(r'title="收藏">(\d+)').findall(html)
centent = re.compile(r'id="txt-\d+-\d+">(.*?)
').findall(html)
# 收藏值大于 70 的保存
tmp = []
lock.acquire() # 当文件没有其他线程写入时写入文件
for n in range(len(favorites)):
if int(favorites[n]) > 70:
tmp.append(favorites[n])
index = n*2
tmp.append(centent[index])
tmp.append(centent[index+1])
some.write(','.join(tmp) + '\n')
some.flush()
tmp.clear()
lock.release() # 写入文件完成,报告(默认为 1 )
# 获取一页网页数据
def GetHtml(url):
# 浏览器头部信息
head = {
'Accept-Language': 'zh-CN,zh;q=0.9',
"User-Agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.30 Safari/537.36"
}
req = urllib.request.Request(url=url, headers=head)
# 这里可以加入 try 代码,处理打开网页失败情况
response = urllib.request.urlopen(req)
return response.read().decode('utf-8')
# 爬取网站IP
url = 'https://www.woyaogexing.com/name/ql/'
# 第一页
print(f'正在爬取第一页 {url}')
parent = GetHtml(url)
# 获取当前页面包含的所有下一页的IP
page = re.compile(r'/name/ql/(index_\d+.html)').findall(parent)
page = set(page) # 集合去重
page = list(page) # 转换回列表
page.sort() # 排序
# 第一页包含的所有页面IP
print(page)
# log保存文件
some = open('some.txt', 'w', encoding='utf-8')
some.write('收藏数, 签名1, 签名2\n')
# 写入文件锁,只能单个写入,避免数据混淆
# 默认值为 1 (单个线程写入文件)
lock = threading.Semaphore()
# 线程任务队列
htmlQueue = multiprocessing.Queue()
# 管理所有线程的容器
threadList = []
# 开启4个线程
# 设置为守护线程,主线程退出后结束所有子线程,避免线程悬挂
maxThreadN = 4
for n in range(maxThreadN):
tmp = threading.Thread(target=dataFilter, daemon=True)
threadList.append(tmp)
tmp.start()
# 向线程任务队列提交任务
for n in page:
print(f'正在爬取 {n}')
sleep(2) # 加上等待时间2秒,我们要对网站温柔一些
htmlQueue.put(GetHtml(url + n))
# 任务完成,提交数据 None 结束所有线程
for n in range(maxThreadN):
htmlQueue.put(None)
# 等待所有线程结束
for th in threadList:
th.join()
# 最后关闭 log 文件
some.close()
input('所有任务完成!')
python3爬取带密码的网站_Python3 爬取网站收藏数超过70的 情侣网名相关推荐
- python和c 情侣网名_Python3 爬取网站收藏数超过70的 情侣网名
[Python] 纯文本查看 复制代码# coding=utf-8 # python 3.7 import urllib.request,urllib.error import re import t ...
- 用计算机专业起情侣网名,带对方名字的情侣网名最新精选
情侣网名是当今QQ网名中最为火爆的网名之一,QQ情侣网名就是网络中2人相互定位的暧昧称呼.QQ情侣网名受到了90后甚至00后情侣的青睐.今天小编在这给大家整理了带对方名字的情侣网名大全,接下来随着小编 ...
- python爬取今日头条的文章_Python3爬取今日头条有关《人民的名义》文章
Python3爬取今日头条有关<人民的名义>文章 最近一直在看Python的基础语法知识,五一假期手痒痒想练练,正好<人民的名义>刚结束,于是决定扒一下头条上面的人名的名义文章 ...
- t3计算机名带特殊符号,带特殊符号的网名,带特殊符号的网名
带特殊符号的网名,带特殊符号的网名以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 带特殊符号个性网名,更多男生女生网名大 ...
- 计算机专业网名英语翻译,英文网名_好听的英文网名带翻译
[英文网名]男女通用英文网名大全 导读:英文形式的网名,是现在男女喜用的类型,不仅可给人美好之感,而且还增加自身文化气息.而对于英文网名的类型,有简单.好听的,也有霸气.响亮的等等.其中通用型网名风格 ...
- 如何利用 C# 爬取带 Token 验证的网站数据?
在对文本数据的情感分析中,基于情感词典的方法是最简单也是最常用的一种了. 它的大体思路如下: 对文档分词,找出文档中的情感词.否定词以及程度副词,然后判断每个情感词之前是否有否定词及程度副词,将它之前 ...
- [Python]网站数据爬取任务
Python爬虫作业:网站数据爬取任务 从以下网址(包括但不限于下列网络或应用)中爬取数据,以核实的形式存储数据,并进行分析(不一定是计算机角度的分析,可写分析报告),或制作词云图. 一.文本数据 酷 ...
- 利用python编写爬虫程序,从招聘网站上爬取数据,将数据存入到MongoDB数据库中,将存入的数据作一定的数据清洗后做数据分析,最后将分析的结果做数据可视化
教程演示 创建爬虫项目 编写需要爬取的字段(items.py) 编写spider文件(wuyou.py) 编写数据库连接(pipelines.py) 编写反爬措施(settings.py) Mongo ...
- python爬虫怎么爬同一个网站的多页数据-如何用Python爬数据?(一)网页抓取
如何用Python爬数据?(一)网页抓取 你期待已久的Python网络数据爬虫教程来了.本文为你演示如何从网页里找到感兴趣的链接和说明文字,抓取并存储到Excel. 需求 我在公众号后台,经常可以收到 ...
最新文章
- python中的class怎么用_对python 中class与变量的使用方法详解
- asp.net窗体操作总结
- jquery实现回车键触发事件
- android数据存储心得,android学习心得 轻量级存储SharePreferences
- Docker基本命令入门
- netty冲突 play sbt_尝试添加MySQL / slick后,Strange Play Framework 2.2异常
- 基于AMPL的tsp旅行商问题
- ubuntu linux拼音输入法,Ubuntu 中文拼音输入法小结
- 北塔曾经很张狂 如今沉默为哪桩
- 进阶C语言------>字符函数和字符串函数------strerror函数
- 无聊的游戏 Beta 0.1
- Java中值得你小心的事(一)——继承
- 简书android微信抢红包,GO从0到1实战微服务版抢红包系统
- 台湾云门舞集今年将赴北京、上海等地巡演
- 在SEO中必备的知识应该滚瓜烂熟,其余的就是实战落实
- java毕业设计 基于vue的小区停车场停车位短租管理系统ssm源码介绍
- ncurses库 常用函数及基本使用
- 第十六周项目1--验证算法--(6)堆排序
- 电力电子与电气行业常用英语单词汇总
- 计算机病毒课程毕业论文,计算机病毒原理论文
热门文章
- python新手入门英文词汇笔记(1-1)_Python新手入门英文词汇(1-1)
- sharepoint页面嵌入_在SharePoint 2010页面中嵌入SWF文件
- 图片优化_Web 性能优化: 图片优化让网站大小减少 62%
- Android开发之Git提交Template模板配置
- window命令查看cpu核数_win7如何查内存条型号机CPU 信息【通过命令来查看】
- ubuntu系统配置nijia_在Debian系统中使用backupninja定制备份计划的教程
- java 学习代码库_java 学习4
- @Mock与@InjectMocks的区别
- 网页简单上传图片 imgareaselect插件
- Linux常用命令(八)LVM逻辑卷管理