[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('所有任务完成!')

python和c 情侣网名_Python3 爬取网站收藏数超过70的 情侣网名相关推荐

  1. python3爬取带密码的网站_Python3 爬取网站收藏数超过70的 情侣网名

    [Python] 纯文本查看 复制代码# coding=utf-8 # python 3.7 import urllib.request,urllib.error import re import t ...

  2. 用python爬取网易云评论10w+的歌曲名_Python3爬取网易云音乐评论

    |下载W3Cschool手机App,0基础随时随地学编程>>戳此了解| 导语 利用Python为自己喜欢的音乐制作专属词云.至于词的来源嘛,当然是对应歌曲的所有评论或者热门评论啦!!!毕竟 ...

  3. python英雄联盟脚本是什么_Python3爬取英雄联盟英雄皮肤大图实例代码

    爬虫思路 初步尝试 我先查看了network,并没有发现有可用的API:然后又用bs4去分析英雄列表页,但是请求到html里面,并没有英雄列表,在英雄列表的节点上,只有"正在加载中" ...

  4. 使用Python和selenium的Chromedriver模拟登陆爬取网站信息(beautifulsoup)

    爬取的信息很多,所以需要设置断点,在程序重启时能继续爬取.并且能在断掉之后自动重启. 1.setting.py 对爬取的常量进行设置 """ 基本信息设置 "& ...

  5. python学习笔记之模块爬虫实战-爬取网站图片(十四)

    背景说明 爬取煎蛋网中随手拍栏目中的某页的所有图片 实战 分析 先打开煎蛋网站中的"随手拍",链接为:http://jandan.net/ooxx/MjAyMDA1MTctMTc1 ...

  6. Python网络爬虫——爬取网站图片小工具

    最近初学python爬虫,就写了一个爬取网站图片的小工具,界面如下: 用到的包主要是爬虫常用的urllib,urllib2和图形界面用的Tkinter,完整代码如下: # -*- coding:utf ...

  7. python爬虫——使用requests库和xpath爬取猎聘网职位详情

    文章目录 前言 一.页面分析 1.职位列表页面分析 2.职位详情页面URL获取 3.职位详情页面分析 至此,所有页面解析完毕,开始写代码. 二.代码编写 1.导入相应库 2.设置代理和随机请求头 3. ...

  8. Python新手爬虫训练小项目《爬取彼岸图网》(超详细讲解版)

    Python新手爬虫训练小项目<爬取彼岸图网>(超详细讲解版) 这是我的第一篇文章,作为一名新手爬虫,这个算是我这几天来的努力成果,虽然代码寥寥几行但花费了大半天,新手上路还是不能只看视频 ...

  9. python爬人人贷代码视频_【IT专家】人人贷网的数据爬取(利用python包selenium)

    本文由我司收集整编,推荐下载,如有疑问,请与我司联系 人人贷网的数据爬取(利用 python 包 selenium ) 2016/12/31 0 记得之前应同学之情,帮忙爬取人人贷网的借贷人信息,综合 ...

最新文章

  1. OSS正式支持IPv6公测
  2. File.separator
  3. SAP有用的NOTE(持续更新)
  4. 麒麟信安面向场景化创新,赋能openEuler商业验证
  5. BAT教程 第三节(FOR命令中的变量)
  6. CSS3系列一(概述、选择器、使用选择器插入内容)
  7. 二叉搜索树的第k个结点
  8. STM32开发 -- 低功耗模式详解(2)
  9. 程序员的弓箭知识涉猎
  10. 【Linux】一步一步学Linux——which命令(45)
  11. uoni扫地机器人好用吗_扫地机器人好用吗?了解性能看这篇
  12. what's new in vs 2005
  13. 1000道Python题库系列分享25(40道Pandas客观题)
  14. CSDN:如何获得C币
  15. 子网划分的计算与可用主机数
  16. c语言中的各种变量是如何存储的(-)
  17. 360安全卫士大战“病毒之王”——最新磁碟机变种
  18. 丝印代码html,常用贴片二三极管丝印 印字 代码
  19. P1535 游荡的奶牛
  20. Flutter项目实操---资讯、发布动弹

热门文章

  1. 中国乡镇的生产力价值,是如何被拼多多重新定义的?
  2. div、p标签超出换行
  3. 【经典】springboot 配置文件统一管理
  4. MATLAB对RGB彩色图像进行加马赛克处理
  5. 暴力视音频分类检测相关论文
  6. FPS游戏:实现人物高跳无后座力
  7. tf实现Focal-Loss
  8. 火柴人小程序linux,这里居然有火柴人的一些不一样的小程序?要不来玩一下
  9. 月薪5千和月薪5W的offer,中间只差这一步
  10. 有点污,23 种设计模式的通俗解释,我居然秒懂了!