Python+Google Hacking+百度搜索引擎进行信息搜集

记录一下在用python爬取百度连接中遇到的坑:php

1.获取百度搜索页面中的域名URLpython

 

 

BeautifulSoup获取a标签中href属性后,连接为百度url,利用request直接访问默认会直接进行跳转,没法获取所需域名浏览器

此时须要将requests的allow_redirects属性设置为False,禁止进行跳转,requests默认会进行跳转安全

 

 再使用.headers['Location']获取最后连接:final_url = baidu_url.headers['Location']多线程

2.百度中的连接返回不统一url

获取到实际域名连接后,发现还有一些奇怪的东西spa

 

访问后发现非site搜集域名线程

忽然想到,颇有多是百度的广告3d

那就须要筛选出包含baidu.php?的连接去剔除掉blog

a="baidu.php?"

b="url"

if a in b:来进行筛选

3.百度安全验证绕过

当在百度搜索连接中加入pn页码参数时,便会直接出现百度安全验证(第一次访问就会出现,并不存在请求频繁)

但发现当手动在浏览器去百度进行site语法请求时,并不会出现百度安全验证码,猜测应该是有在HTTP请求头或者参数中漏掉一些参数  

 

 对HTTP请求参数进行一系列不可描述的操做以后,发现还须要"bs"、"rsv_jmp"两个参数

 

 未添加这两个参数时,还存在验证,未得到任何返回数据

 添加以后,已成功获取url

4.获取查询的总页数并去进行遍历

没找到获取总页面的接口,每次请求最多显示10个页面连接,获取以后的还须要去动态进行交互点击

 

 

网上也没找到好办法,最后决定采用while循环,来固定遍历前N个页面

 

 

 当tagh3长度值为0时直接跳出break

5.连接根域名的去重问题

设置set集合  lines_seen = set()

每次写入url前判断

6.多域名多线程问题

相关文章
相关标签/搜索