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模拟登陆阿里妈妈生成商品推广链接
Apr 03 Python
Python脚本判断 Linux 是否运行在虚拟机上
Apr 25 Python
Python中subprocess的简单使用示例
Jul 28 Python
python flask实现分页的示例代码
Aug 02 Python
对python PLT中的image和skimage处理图片方法详解
Jan 10 Python
Pythony运维入门之Socket网络编程详解
Apr 15 Python
Python_查看sqlite3表结构,查询语句的示例代码
Jul 17 Python
django与vue的完美结合_实现前后端的分离开发之后在整合的方法
Aug 12 Python
Python中BeautifuSoup库的用法使用详解
Nov 15 Python
Django框架之中间件MiddleWare的实现
Dec 30 Python
通过实例了解Python异常处理机制底层实现
Jul 23 Python
pytorch 中nn.Dropout的使用说明
May 20 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之Smarty入门
2007/01/04 PHP
PHP中删除变量时unset()和null的区别分析
2011/01/27 PHP
一个PHP验证码类代码分享(已封装成类)
2011/07/17 PHP
ThinkPHP模板之变量输出、自定义函数与判断语句用法
2014/11/01 PHP
PHP使用CURL模拟登录的方法
2015/07/08 PHP
curl 出现错误的调试方法(必看)
2017/02/13 PHP
defer属性导致引用JQuery的页面报“浏览器无法打开网站xxx,操作被中止”错误的解决方法
2010/04/27 Javascript
如何用JavaScript动态呼叫函数(两种方式)
2013/05/03 Javascript
js如何获取object类型里的键值
2014/02/18 Javascript
Javascript中常见的逻辑题和解决方法
2016/09/17 Javascript
jquery插件treegrid树状表格的使用方法详解(.Net平台)
2017/01/03 Javascript
javascript 中设置window.location.href跳转无效问题解决办法
2017/02/09 Javascript
jQuery模拟窗口抖动效果
2017/03/15 Javascript
bootstrap multiselect下拉列表功能
2017/08/22 Javascript
ES6中Array.includes()函数的用法
2017/09/20 Javascript
Mint UI 基于 Vue.js 移动端组件库
2017/11/07 Javascript
Vue 中批量下载文件并打包的示例代码
2017/11/20 Javascript
Thinkjs3新手入门之如何使用静态资源目录
2017/12/06 Javascript
详解React+Koa实现服务端渲染(SSR)
2018/05/23 Javascript
如何从0开始用node写一个自己的命令行程序
2018/12/29 Javascript
微信小程序的开发范式BeautyWe.js入门详解
2019/07/10 Javascript
vue element 关闭当前tab 跳转到上一路由操作
2020/07/22 Javascript
[01:01:52]完美世界DOTA2联赛PWL S2 GXR vs Magma 第二场 11.25
2020/11/26 DOTA
利用Python学习RabbitMQ消息队列
2015/11/30 Python
Python随手笔记第一篇(2)之初识列表和元组
2016/01/23 Python
Python使用dis模块把Python反编译为字节码的用法详解
2016/06/14 Python
Python之ReportLab绘制条形码和二维码的实例
2018/01/15 Python
pytorch 实现打印模型的参数值
2019/12/30 Python
使用Django xadmin 实现修改时间选择器为不可输入状态
2020/03/30 Python
用HTML5制作一个简单的桌球游戏的教程
2015/05/12 HTML / CSS
美国摄影爱好者购物网站:Focus Camera
2016/10/21 全球购物
美国专营婴幼儿用品的购物网站:buybuy BABY
2017/01/01 全球购物
Java servlet面试题
2012/03/04 面试题
运动会三级跳加油稿
2015/07/21 职场文书
售房协议书范本
2015/08/11 职场文书
python读取mnist数据集方法案例详解
2021/09/04 Python