搜外网>搜外问答>问答页面

Python selenium 实现自然搜索访问目标网站

快排是现在比较火热的SEO手段,快排即快速排名,相比传统的优化手段,尤其是企业站而言,快排能够快速占据排名,获取流量及客户,也是最热门的韭菜项目,可谓酸爽至极。

快排有没有用,据观察,应该是有用的,不管是从百度专利算法,还是从百度搜索上的排名体现,都能够看到快排的效果,而本渣渣也关注过不少匪夷所思的网站排名,很难说服自己这不是快排的身影效果。

首先声明:

第一:市面上确实有很多快排,至于效果,试过才知道,大部分应该都是智商税;第二:本渣渣不会快排,也没有用过快排;第三:本渣渣在尝试探究快排,至于能否实现,还是一个未知数,欢迎一起探讨交流。

还处于探索研究期,有进度会第一时间总结,分享,大概会出一个系列的探索吧,原创不易,点个在看,关注吧!

手里头有一两份快排源码,参考着探索了一下快排,通过Python[?] selenium 实现了自然搜索访问目标网站,已经在百度统计中获取到访问信息。

感兴趣的大佬哥,欢迎交流分享!

Python selenium 环境配置

  1. python3 安装

官网下载python3安装包,选定路径安装并配置环境变量,可自行百度 相关安装教程。

  1. selenium 安装 通过 python pip 安装即可
pip install selenium
  1. 浏览器驱动安装

本渣渣这里使用的是谷歌浏览器,所以安装的 chromedriver 驱动。

关键点

1.百度搜索翻页

遇到的问题,当翻页到第三页的时候,死活翻不过去,一直在第一页以及第二页循环。

    #百度搜索结果翻页
def get_nextpage(self):
self.browser.find_element_by_xpath("//div[@id='page']/div[@class='page-inner']/a[@class='n']").click()
time.sleep(8)

思考

应该是定位翻页元素丢失,同时结合百度搜索相关问题,找到相关内容。

解决方案

另一个翻页版本

   #百度搜索结果翻页第三页
def get_newnextpage(self,i):
self.browser.find_element_by_xpath(f"//div[@id='page']/div[@class='page-inner']/a[{i}]").click()
time.sleep(8)

2.百度搜索网址转码

把搜索结果的网址转化为正常的网页地址。

获取定位元素,使用get_attribute方法。

    #解密匹配网站
def get_trueurl(self,searchurl,siteurl):
search_url=searchurl.get_attribute('href')
#print(search_url)
# 解密url
resulturl = requests.head(search_url).headers['location']
print(resulturl)

3.找到目标网址,并访问

匹配搜索结果的网页地址,直接用 in 即可,这里需要注意的是,访问目标网址的方式,以网址的访问形式是无法统计到自然流量当中的,只能算是直接访问。

    def get_urlchilk(self,searchurl,resulturl,siteurl):
if siteurl in resulturl:
print("找到目标网站,开始访问网站..")
searchurl.click()
time.sleep(2)

4.一个莫名的错误,待解决中

出现过一两次的错误,如果解决不了,考虑使用 try/except 来跳过这样的错误内容!Selenium中错误:selenium.common.exceptions.ElementClickInterceptedException: Message: element click inte

5.翻页实现

渣渣就是渣渣,使用了笨方法,完成了百度搜索结果前十页,也就是前百名的搜索。

    def main(self,keyword,siteurl):
self.get_search(keyword)

print("正在查询第1页搜索结果..")
self.get_searchurls(siteurl)

print("正在查询第2页搜索结果..")
self.get_nextpage()
self.get_searchurls(siteurl)

print("正在查询第3页搜索结果..")
self.get_newnextpage(3)
self.get_searchurls(siteurl)

print("正在查询第4页搜索结果..")
self.get_newnextpage(4)
self.get_searchurls(siteurl)

print("正在查询第5页搜索结果..")
self.get_newnextpage(5)
self.get_searchurls(siteurl)

print("正在查询第6页搜索结果..")
self.get_newnextpage(6)
self.get_searchurls(siteurl)

print("正在查询第7页搜索结果..")
self.get_newnextpage(7)
self.get_searchurls(siteurl)

print("正在查询第8页搜索结果..")
self.get_newnextpage(7)
self.get_searchurls(siteurl)

print("正在查询第9页搜索结果..")
self.get_newnextpage(7)
self.get_searchurls(siteurl)

print("正在查询第10页搜索结果..")
self.get_newnextpage(7)
self.get_searchurls(siteurl)


当然代码精简和优化的很大余地,或者考虑换一个方式来实现?

以上,实现了百度搜索结果前十页,也就是前100名的搜索提交,可实现自然流量的访问记录,以关键词的自然搜索方式来进入到目标网站当中,百度统计中可以看到访问来路。

总结和思考

  1. 如果你的人为模拟够给力,刷百度竞价应该可以实现,不知道百度对于竞价过滤的方式是如何,不过考虑到点的越多,消费越多,百度的力度是否有多大呢,那些真正可以实现快排的,应该可以刷竞价吧!
  2. 如果模拟人为搜索,相关参数,以及设置,需要如何模仿,以达到符合用户搜索的行为呢,这都需要下一步的测试,包括,设备,cookies,以及大部分人所说的ip!
追加问题
    5 人参与回答
夜场网
夜场网 · 全国招聘网

学习到了,感谢楼主分享

风和日丽
风和日丽 · 本人要成为一个网络营销+品牌策划+平面3D设计+视频直播带货+大数据分析+网站开发+新媒体运营的工程狮!

这个程序语言有点难度,只能帮顶一下!

不错不错的啊

你去试试某快排就知道了,可以说90以上的都没效果,他们的浏览器分辨率,1024x768,ua基本没变过,唯一变的就是进入首页随机点击头部,中间的链接停留1-3分钟,之后能出,1-3分钟内会随机点击几个页面