python爬取盘搜的有效链接实现代码


Posted in Python onJuly 20, 2019

因为盘搜搜索出来的链接有很多已经失效了,影响找数据的效率,因此想到了用爬虫来过滤出有效的链接,顺便练练手~

这是本次爬取的目标网址http://www.pansou.com,首先先搜索个python,之后打开开发者工具,

可以发现这个链接下的json数据就是我们要爬取的数据了,把多余的参数去掉,

剩下的链接格式为http://106.15.195.249:8011/search_new?q=python&p=1,q为搜索内容,p为页码

python爬取盘搜的有效链接实现代码

以下是代码实现:

import requests
import json
from multiprocessing.dummy import Pool as ThreadPool
from multiprocessing import Queue
import sys
headers = {
  "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36"
}
q1 = Queue()
q2 = Queue()
urls = [] # 存取url列表
# 读取url
def get_urls(query):
  # 遍历50页
  for i in range(1,51):
    # 要爬取的url列表,返回值是json数据,q参数是搜索内容,p参数是页码
    url = "http://106.15.195.249:8011/search_new?&q=%s&p=%d" % (query,i)
    urls.append(url)
# 获取数据
def get_data(url):
  print("开始加载,请等待...")
  # 获取json数据并把json数据转换为字典
  resp = requests.get(url, headers=headers).content.decode("utf-8")
  resp = json.loads(resp)
  # 如果搜素数据为空就抛出异常停止程序
  if resp['list']['data'] == []:
    raise Exception
  # 遍历每一页数据的长度
  for num in range(len(resp['list']['data'])):
    # 获取百度云链接
    link = resp['list']['data'][num]['link']
    # 获取标题
    title = resp['list']['data'][num]['title']
    # 访问百度云链接,判断如果页面源代码中有“失效时间:”这段话的话就表明链接有效,链接无效的页面是没有这段话的
    link_content = requests.get(link, headers=headers).content.decode("utf-8")
    if "失效时间:" in link_content:
      # 把标题放进队列1
      q1.put(title)
      # 把链接放进队列2
      q2.put(link)
      # 写入csv文件
      with open("wangpanziyuan.csv", "a+", encoding="utf-8") as file:
        file.write(q1.get()+","+q2.get() + "\n")
  print("ok")
if __name__ == '__main__':
  # 括号内填写搜索内容
  get_urls("python")
  # 创建线程池
  pool = ThreadPool(3)
  try:
    results = pool.map(get_data, urls)
  except Exception as e:
    print(e)
  pool.close()
  pool.join()
  print("退出")

总结

以上所述是小编给大家介绍的python爬取盘搜的有效链接实现代码希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Python 相关文章推荐
python使用PyV8执行javascript代码示例分享
Dec 04 Python
Python中的ConfigParser模块使用详解
May 04 Python
python实现根据主机名字获得所有ip地址的方法
Jun 28 Python
Python中atexit模块的基本使用示例
Jul 08 Python
Python实现生成随机日期字符串的方法示例
Dec 25 Python
Python实现k-means算法
Feb 23 Python
详解python中的装饰器
Jul 10 Python
基于Python在MacOS上安装robotframework-ride
Dec 28 Python
Python:Numpy 求平均向量的实例
Jun 29 Python
使用Python实现文字转语音并生成wav文件的例子
Aug 08 Python
安装python依赖包psycopg2来调用postgresql的操作
Jan 01 Python
Selenium Webdriver元素定位的八种常用方式(小结)
Jan 13 Python
python将字符串list写入excel和txt的实例
Jul 20 #Python
python中for循环把字符串或者字典添加到列表的方法
Jul 20 #Python
python:按行读入,排序然后输出的方法
Jul 20 #Python
对Python3中列表乘以某一个数的示例详解
Jul 20 #Python
python3在同一行内输入n个数并用列表保存的例子
Jul 20 #Python
在python中实现同行输入/接收多个数据的示例
Jul 20 #Python
python使用tomorrow实现多线程的例子
Jul 20 #Python
You might like
php简单浏览目录内容的实现代码
2013/06/07 PHP
thinkphp判断访客为手机端或PC端的方法
2014/11/24 PHP
php在线解压ZIP文件的方法
2014/12/30 PHP
javasciprt下jquery函数$.post执行无响应的解决方法
2014/03/13 Javascript
javascript:window.open弹出窗口的位置问题
2014/03/18 Javascript
jquery库文件略庞大用纯js替换jquery的方法
2014/08/12 Javascript
Jquery 实现table样式的设定
2015/01/28 Javascript
jQuery zTree加载树形菜单功能
2016/02/25 Javascript
Jquery跨浏览器文本复制插件Zero Clipboard的使用方法
2016/02/28 Javascript
基于jquery实现多级菜单效果
2017/07/25 jQuery
nodejs基于WS模块实现WebSocket聊天功能的方法
2018/01/12 NodeJs
JS实现的邮箱提示补全效果示例
2018/01/30 Javascript
webpack-dev-server远程访问配置方法
2018/02/22 Javascript
一步步教你利用Docker设置Node.js
2018/11/20 Javascript
NodeJs 文件系统操作模块fs使用方法详解
2018/11/26 NodeJs
vue如何限制只能输入正负数及小数
2019/07/04 Javascript
2020京东618叠蛋糕js脚本(亲测好用)
2020/06/02 Javascript
小程序表单认证布局及验证详解
2020/06/19 Javascript
js实现弹窗效果
2020/08/09 Javascript
vue实现抽屉弹窗效果
2020/11/15 Javascript
python实现查询IP地址所在地
2015/03/29 Python
用Python制作简单的朴素基数估计器的教程
2015/04/01 Python
python编码最佳实践之总结
2016/02/14 Python
matplotlib简介,安装和简单实例代码
2017/12/26 Python
python使用正则表达式来获取文件名的前缀方法
2018/10/21 Python
django+echart绘制曲线图的方法示例
2018/11/26 Python
详解Python 字符串相似性的几种度量方法
2019/08/29 Python
css3实现平移效果(transfrom:translate)的示例
2020/11/13 HTML / CSS
行政助理岗位职责
2013/11/10 职场文书
医务工作者先进事迹材料
2014/01/26 职场文书
2014年应急工作总结
2014/12/11 职场文书
大学考试作弊检讨书
2015/05/06 职场文书
2015年乡镇残联工作总结
2015/05/13 职场文书
公司团队口号霸气押韵
2015/12/24 职场文书
总结Python变量的相关知识
2021/06/28 Python
Docker容器harbor私有仓库部署和管理
2022/08/05 Servers