请求解释从Bing提取WordPress站点的Python代码过滤逻辑
这段Python代码如何从Bing结果中过滤WordPress站点?
咱们来一步步拆解这段代码筛选WordPress站点的核心逻辑:
1. 从Bing搜索阶段就定向缩小范围
代码里构造的Bing搜索URL是关键:
bing = "http://www.bing.com/search?q=ip%3A"+s+"+?page_id=&count=50&first="+str(page)
这里的搜索关键词组合ip:s + ?page_id=直接给Bing划定了筛选规则:
ip:s:限定只搜索你传入的目标IP(参数s)上部署的站点?page_id=:这是WordPress特有的URL参数——WordPress默认用page_id来标识静态页面(比如xxx.com/?page_id=123),所以Bing会直接返回包含这个参数的站点结果,相当于提前帮我们做了一轮粗筛选。
2. 提取并清洗符合条件的站点域名
拿到Bing的搜索结果页面后,代码做了两步处理:
- 用正则表达式
<h2><a href="(.*?)"提取搜索结果里的所有链接地址 - 再对每个链接用正则
(.*?)\?page_id=,精准提取?page_id=前面的站点主域名(比如从https://abc.com/?page_id=456里提取出https://abc.com),把这些域名存入列表lista
3. 去重并输出最终结果
最后调用unique(lista)对列表去重(避免同一站点因多次出现在搜索结果里而重复统计),然后输出所有去重后的WordPress站点,同时统计找到的站点总数。
简单来说,这段代码的核心思路就是利用WordPress专属的page_idURL参数,先让Bing帮我们缩小范围,再提取清洗出站点域名,以此实现只过滤WordPress站点的目的。
注意:这种方法有局限性——如果WordPress站点开启了伪静态(把
?page_id=xxx转换成友好的URL格式),这类站点就会被漏掉,因为它们的URL里不会出现page_id参数。
内容的提问来源于stack exchange,提问作者Brahim




