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中使用wxPython开发的一个简易笔记本程序实例
Feb 08 Python
Python实现保证只能运行一个脚本实例
Jun 24 Python
Python文件操作基本流程代码实例
Dec 11 Python
使用Python横向合并excel文件的实例
Dec 11 Python
pytz格式化北京时间多出6分钟问题的解决方法
Jun 21 Python
django框架模板语言使用方法详解
Jul 18 Python
pycharm设置鼠标悬停查看方法设置
Jul 29 Python
Python中最好用的命令行参数解析工具(argparse)
Aug 23 Python
python统计文章中单词出现次数实例
Feb 27 Python
python 安装库几种方法之cmd,anaconda,pycharm详解
Apr 08 Python
Python 如何操作 SQLite 数据库
Aug 17 Python
Python基于argparse与ConfigParser库进行入参解析与ini parser
Feb 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 array_key_exists检查键名或索引是否存在于数组中的实现方法
2016/06/13 PHP
php提取微信账单的有效信息
2018/10/01 PHP
dojo 之基础篇
2007/03/24 Javascript
jQuery库与其他JS库冲突的解决办法
2010/02/07 Javascript
js关闭模态窗口刷新父页面或跳转页面
2012/12/13 Javascript
jquery插件validation实现验证身份证号等
2015/06/04 Javascript
JS字符串的切分用法实例
2016/02/22 Javascript
jQuery实现简单滚动动画效果
2016/04/07 Javascript
jquery.cookie.js实现用户登录保存密码功能的方法
2016/04/15 Javascript
JS组件系列之Bootstrap table表格组件神器【二、父子表和行列调序】
2016/05/10 Javascript
Javascript中判断一个值是否为undefined的方法详解
2016/09/28 Javascript
Webpack如何引入bootstrap的方法
2017/06/17 Javascript
慕课网题目之js实现抽奖系统功能
2017/09/19 Javascript
详解ES6之async+await 同步/异步方案
2017/09/19 Javascript
jQuery实现可兼容IE6的滚动监听功能
2017/09/20 jQuery
浅谈Koa服务限流方法实践
2017/10/23 Javascript
angularjs实现柱状图动态加载的示例
2017/12/11 Javascript
如何解决vue2.0下IE浏览器白屏问题
2018/09/13 Javascript
jQuery事件委托代码实践详解
2019/06/21 jQuery
小程序中设置缓存过期的实现方法
2020/01/14 Javascript
微信小程序以7天为周期连续签到7天功能效果的示例代码
2020/08/20 Javascript
Python创建二维数组实例(关于list的一个小坑)
2017/11/07 Python
Python中的Numpy矩阵操作
2018/08/12 Python
windows中安装Python3.8.0的实现方法
2019/11/19 Python
matplotlib subplot绘制多个子图的方法示例
2020/07/28 Python
Python爬虫之Selenium设置元素等待的方法
2020/12/04 Python
解决python3输入的坑——input()
2020/12/05 Python
Pandas数据分析的一些常用小技巧
2021/02/07 Python
鲜为人知的HTML5语音合成功能
2019/05/17 HTML / CSS
html5清空画布方法(三种)
2017/10/16 HTML / CSS
什么是方法的重载
2013/06/24 面试题
学习雷锋精神心得体会范文
2014/03/12 职场文书
11.9消防日宣传标语
2014/10/08 职场文书
大学生实训报告总结
2014/11/05 职场文书
2015年推广普通话演讲稿
2015/03/20 职场文书
2015年干部教育培训工作总结
2015/05/15 职场文书