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 相关文章推荐
pymongo实现多结果进行多列排序的方法
May 16 Python
Python 实现简单的电话本功能
Aug 09 Python
Python装饰器入门学习教程(九步学习)
Jan 28 Python
Linux下为不同版本python安装第三方库
Aug 31 Python
Python中eval带来的潜在风险代码分析
Dec 11 Python
python中的闭包函数
Feb 09 Python
Python简单实现的代理服务器端口映射功能示例
Apr 08 Python
利用python实现对web服务器的目录探测的方法
Feb 26 Python
详解python 3.6 安装json 模块(simplejson)
Apr 02 Python
python实现Oracle查询分组的方法示例
Apr 30 Python
pytorch中 gpu与gpu、gpu与cpu 在load时相互转化操作
May 25 Python
python自动获取微信公众号最新文章的实现代码
Jul 15 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 设计模式之 单例模式
2008/12/19 PHP
php中时间轴开发(刚刚、5分钟前、昨天10:23等)
2011/10/03 PHP
Zend Framework实现具有基本功能的留言本(附demo源码下载)
2016/03/22 PHP
PHP检测链接是否存在的代码实例分享
2016/05/06 PHP
PHP strripos函数用法总结
2019/02/11 PHP
js中eval()函数和trim()去掉字符串左右空格应用
2013/02/02 Javascript
js中回调函数的学习笔记
2014/07/31 Javascript
JavaScript声明变量时为什么要加var关键字
2014/09/29 Javascript
js获取字符串最后一位方法汇总
2014/11/13 Javascript
Node.js的包详细介绍
2015/01/14 Javascript
window.onload与$(document).ready()的区别分析
2015/05/30 Javascript
jquery实现跳到底部,回到顶部效果的简单实例(类似锚)
2016/07/10 Javascript
JS实现图文并茂的tab选项卡效果示例【附demo源码下载】
2016/09/21 Javascript
vue 2.0 购物车小球抛物线的示例代码
2018/02/01 Javascript
angularJs中json数据转换与本地存储的实例
2018/10/08 Javascript
pm2启动ssr失败的解决方法
2019/06/29 Javascript
CountUp.js数字滚动插件使用方法详解
2019/10/17 Javascript
JavaScript基于SVG的图片切换效果实例代码
2020/12/15 Javascript
Python的Django框架中的select_related函数对QuerySet 查询的优化
2015/04/01 Python
web.py在SAE中的Session问题解决方法(使用mysql存储)
2015/06/24 Python
Python subprocess模块详细解读
2018/01/29 Python
python指定写入文件时的编码格式方法
2018/06/07 Python
python协程gevent案例 爬取斗鱼图片过程解析
2019/08/27 Python
python3使用GUI统计代码量
2019/09/18 Python
解决django model修改添加字段报错的问题
2019/11/18 Python
Python使用ElementTree美化XML格式的操作
2020/03/06 Python
Python实现UDP程序通信过程图解
2020/05/15 Python
Python 防止死锁的方法
2020/07/29 Python
Python getsizeof()和getsize()区分详解
2020/11/20 Python
基于python实现监听Rabbitmq系统日志代码示例
2020/11/28 Python
会计专业自荐信
2013/12/02 职场文书
家佳咖啡店创业计划书
2013/12/27 职场文书
出纳工作检讨书
2014/10/18 职场文书
2015年党员个人剖析材料
2014/12/18 职场文书
2016年感恩节寄语
2015/12/07 职场文书
Python并发编程实例教程之线程的玩法
2021/06/20 Python