首先放上源码,这里爬取的是域名有”.edu.cn”且是”中国”的站点image.png
    我给它划分了三个步骤:
    1.构建url和导入cookie
    2.将文本转换为html格式
    3.使用lxml库函数筛选需要的内容
    4.写入文档

    1.1 第一步:构建url和导入cookie
    我们搜索的url会被base64加密后用get发送请求给服务器
    image.png
    这里我写了一个测试文件,这样就一目了然了
    image.png
    page是页数,之后我们就可以直接构建url了,并且用for循环爬取其他页面。

    1.2 因为fofa需要登陆才能访问第二页,这里就需要用到requests库函数导入cookie
    我们这里建立一个字典,里面用get请求的时候加入它就行
    具体如下:
    cookies = {‘cookie’:‘befor_router=%2F; refresh_token=eyJhbGciOiJ……………}
    con = requests.get(url,headers=cookies).content.decode(‘utf-8’)

    2.第二步:由于爬下来的页面不是html格式,现在我们需要用etree将它转为html
    很简单,调用etree.HTML(要转换的内容)
    例:Content_html = etree.HTML(con),讲con转换为html,并将它传给Content_html

    3.第三步:筛选,这里需要用到xpath的语法,网上可以搜到,我这里就不赘述
    Content_html.xpath(‘//span/a[@target=”_blank”]/@href’)
    这个语句我用浏览器插件演示如下:
    image.png
    意思就是:span标签下的子标签a里有target=”_blank”的值的href里的内容
    image.png
    4.第四步:写入文档,这里有记得加入一个换行符 ‘\n’
    result = Content_html.xpath(‘//span/a[@target=”_blank”]/@href’)
    results = ‘\n’.join(result) #在末尾加入换行
    然后写入文档
    with open(‘fafa_edu.txt’,‘a+’,encoding=‘utf-8’)as f:
    f.write(results)