python采集百度搜索结果带有特定URL的链接代码实例


Posted in Python onAugust 30, 2019

这篇文章主要介绍了python采集百度搜索结果带有特定URL的链接代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

#coding utf-8
import requests
from bs4 import BeautifulSoup as bs
import re
from Queue import Queue
import threading
from argparse import ArgumentParser

arg = ArgumentParser(description='baidu_url_collet py-script by xiaoye')
arg.add_argument('keyword',help='keyword like inurl:?id=for searching sqli site')
arg.add_argument('-p','--page',help='page count',dest='pagecount',type=int)
arg.add_argument('-t','--thread',help='the thread_count',dest='thread_count',type=int,default=10)
arg.add_argument('-o','--outfile',help='the file save result',dest='oufile',type=int,default='result.txt')
result = arg.parse_args()
headers = {'User-Agent':'Mozilla/5.0(windows NT 10.0 WX64;rv:50.0) Gecko/20100101 Firefox/50.0'}

class Bg_url(threading.Thread):
  def __init__(self,que):
    threading.Thread.__init__(self)
    self._que = que
  def run(self):
    while not self._que.empty():
      URL = self._que.get()
      try:
        self.bd_url_collet(URL)
      except Exception,e:
        print(e)
        pass
  def bd_url_collect(self, url):
    r = requests.get(url, headers=headers, timeout=3)
    soup = bs(r.content, 'lxml', from_encoding='utf-8')
    bqs = soup.find_all(name='a', attrs={‘data-click‘:re.compile(r'.'), 'class':None})#获得从百度搜索出来的a标签的链接
    for bq in bqs:
      r = requests.get(bq['href'], headers=headers, timeout=3)#获取真实链接
      if r.status_code == 200:#如果状态码为200
        print r.url
        with open(result.outfile, 'a') as f:
          f.write(r.url + '\n')
def main():
  thread = []
  thread_count = result.thread_count
  que = Queue()
  for i in range(0,(result.pagecount-1)*10,10):
  que.put('https://www.baidu.com/s?wd=' + result.keyword + '&pn=' + str(i))
  or i in range(thread_count):
  thread.append(Bd_url(que))
  for i in thread:
    i.start()
  for i in thread:
    i.join()    
if __name__ == '__main__':
  main()  
#执行格式
python aaaaa.py "inurl:asp?id=" -p 30 -t 30

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python写的创建文件夹自定义函数mkdir()
Aug 25 Python
python bottle框架支持jquery ajax的RESTful风格的PUT和DELETE方法
May 24 Python
Python批量查询域名是否被注册过
Jun 21 Python
Python实现运行其他程序的四种方式实例分析
Aug 17 Python
Django基于ORM操作数据库的方法详解
Mar 27 Python
Python中判断子串存在的性能比较及分析总结
Jun 23 Python
python GUI库图形界面开发之PyQt5窗口类QMainWindow详细使用方法
Feb 26 Python
Python爬取12306车次信息代码详解
Aug 12 Python
Windows环境下Python3.6.8 importError: DLLload failed:找不到指定的模块
Nov 01 Python
Python常用扩展插件使用教程解析
Nov 02 Python
Python控制台输出俄罗斯方块移动和旋转功能
Apr 18 Python
Python 数据可视化之Bokeh详解
Nov 02 Python
python获取Linux发行版名称
Aug 30 #Python
python实现ip地址查询经纬度定位详解
Aug 30 #Python
Django 对IP访问频率进行限制的例子
Aug 30 #Python
关于Python3 类方法、静态方法新解
Aug 30 #Python
Python 获取指定文件夹下的目录和文件的实现
Aug 30 #Python
简单的Python调度器Schedule详解
Aug 30 #Python
详解在Python中以绝对路径或者相对路径导入文件的方法
Aug 30 #Python
You might like
php 取得瑞年与平年的天数的代码
2009/08/10 PHP
JS获取IUSR_机器名和IWAM_机器名帐号的密码
2006/12/06 Javascript
让iframe子窗体取父窗体地址栏参数(querystring)
2009/10/13 Javascript
js监听表单value的修改同步问题,跨浏览器支持
2009/12/31 Javascript
通过遮罩层实现浮层DIV登录的js代码
2014/02/07 Javascript
JavaScript中Function()函数的使用教程
2015/06/04 Javascript
jQuery.form插件的使用及跨域异步上传文件
2016/04/27 Javascript
jQuery EasyUI右键菜单实现关闭标签/选项卡
2016/10/10 Javascript
微信小程序 免费SSL证书https、TLS版本问题的解决办法
2016/12/14 Javascript
详解javascript中对数据格式化的思考
2017/01/23 Javascript
图文详解Javascript中的上下文和作用域
2017/02/15 Javascript
解决Mac node版本升级失败的问题
2018/05/16 Javascript
详解React之父子组件传递和其它一些要点
2018/06/25 Javascript
JavaScript设计模式之单例模式原理与用法实例分析
2018/07/26 Javascript
node.js读取Excel数据(下载图片)的方法示例
2018/08/02 Javascript
bootstrapTable+ajax加载数据 refresh更新数据
2018/08/31 Javascript
webpack4 从零学习常用配置(小结)
2019/05/28 Javascript
JavaScript基础之this和箭头函数详析
2019/09/05 Javascript
小程序怎样让wx.navigateBack更好用的方法实现
2019/11/01 Javascript
javascript实现图片轮换动作方法
2020/08/07 Javascript
[48:24]完美世界DOTA2联赛循环赛LBZS vs Forest 第一场 10月30日
2020/10/31 DOTA
python元组操作实例解析
2014/09/23 Python
Python中遍历字典过程中更改元素导致异常的解决方法
2016/05/12 Python
Python tkinter模块弹出窗口及传值回到主窗口操作详解
2017/07/28 Python
十分钟搞定pandas(入门教程)
2019/06/21 Python
Django Rest framework解析器和渲染器详解
2019/07/25 Python
python tkinter 设置窗口大小不可缩放实例
2020/03/04 Python
详解tensorflow之过拟合问题实战
2020/11/01 Python
一套软件测试笔试题
2014/07/25 面试题
写好自荐信的几个要点
2013/12/26 职场文书
自我鉴定 电子商务专业
2014/01/30 职场文书
教师对学生的评语
2014/04/28 职场文书
优秀范文:《但愿人长久》教学反思3篇
2019/10/24 职场文书
python3 hdf5文件 遍历代码
2021/05/19 Python
MySQL中出现乱码问题的终极解决宝典
2021/05/26 MySQL
【海涛解说】pis亲自推荐,其实你从来不会玩NW
2022/04/01 DOTA