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与shell的3种交互方式介绍
Apr 11 Python
深入解析Python编程中JSON模块的使用
Oct 15 Python
Python进阶之递归函数的用法及其示例
Jan 31 Python
java中两个byte数组实现合并的示例
May 09 Python
Python实现批量修改图片格式和大小的方法【opencv库与PIL库】
Dec 03 Python
十分钟搞定pandas(入门教程)
Jun 21 Python
详解python3中用HTMLTestRunner.py报ImportError: No module named 'StringIO'如何解决
Aug 27 Python
使用Python的networkx绘制精美网络图教程
Nov 21 Python
python3+opencv 使用灰度直方图来判断图片的亮暗操作
Jun 02 Python
keras实现调用自己训练的模型,并去掉全连接层
Jun 09 Python
pycharm-professional-2020.1下载与激活的教程
Sep 21 Python
Python中glob库实现文件名的匹配
Jun 18 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
Composer设置忽略版本匹配的方法
2016/04/27 PHP
javascript编程起步(第一课)
2007/01/10 Javascript
Save a File Using a File Save Dialog Box
2007/06/18 Javascript
jQuery aminate方法定位到页面具体位置
2013/12/26 Javascript
AngularJS基础知识笔记之表格
2015/05/10 Javascript
js实现的彩色方块飞舞奇幻效果
2016/01/27 Javascript
JS中的hasOwnProperty()和isPrototypeOf()属性实例详解
2016/08/11 Javascript
微信小程序 传值取值的几种方法总结
2017/01/16 Javascript
video.js使用改变ui过程
2017/03/05 Javascript
jQuery模拟窗口抖动效果
2017/03/15 Javascript
js 函数式编程学习笔记
2017/03/25 Javascript
在使用JSON格式处理数据时应该注意的问题小结
2017/05/20 Javascript
基于Vue实现页面切换左右滑动效果
2020/06/29 Javascript
Angular学习笔记之集成三方UI框架、控件的示例
2018/03/23 Javascript
vue中Npm run build 根据环境传递参数方法来打包不同域名
2018/03/29 Javascript
JS 中可以提升幸福度的小技巧(可以识别更多另类写法)
2018/07/28 Javascript
Vue 中 a标签上href无法跳转的解决方式
2019/11/12 Javascript
[03:48]大碗DOTA
2019/07/25 DOTA
[39:21]LGD vs OG 2019国际邀请赛淘汰赛 胜者组 BO3 第二场 8.24
2019/09/10 DOTA
Python实现将目录中TXT合并成一个大TXT文件的方法
2015/07/15 Python
Python动刷新抢12306火车票的代码(附源码)
2018/01/24 Python
Python3实现带附件的定时发送邮件功能
2020/12/22 Python
python爬虫实例详解
2018/06/19 Python
python 读取Linux服务器上的文件方法
2018/12/27 Python
python 使用plt画图,去除图片四周的白边方法
2019/07/09 Python
TensorFlow2.X结合OpenCV 实现手势识别功能
2020/04/08 Python
QT5 Designer 打不开的问题及解决方法
2020/08/20 Python
Python猫眼电影最近上映的电影票房信息
2020/09/18 Python
详解KMP算法以及python如何实现
2020/09/18 Python
python中封包建立过程实例
2021/02/18 Python
Lungolivigno Fashion官网:高级时装在线购物
2020/10/17 全球购物
2014年德育工作总结
2014/11/20 职场文书
十二月早安励志心语大全
2019/12/03 职场文书
Python爬虫之爬取哔哩哔哩热门视频排行榜
2021/04/28 Python
angular异步验证器防抖实例详解
2022/03/31 Javascript
Python按顺序遍历并读取文件夹中文件
2022/04/29 Python