zoukankan      html  css  js  c++  java
  • 正则与xpath爬虫模板

    题记

        研究python上瘾啊,今天搞个正则与xpath爬取数据的模板。

    正文

        直接上代码,很简单,自己看吧,xpath有些小坑,有的东西他爬不到。

    #coding=utf-8
    import requests
    from lxml import etree
    import urllib3
    import re
    #re正则匹配模型
    def Retest(url):
        try:
            url="http://"+url+"/hosts"
            #请求网址
            print(url)
            r = requests.get(url,verify = False,timeout=5)
            #print(str(r.content))
            #content = etree.HTML(r.content)
            #正则返回内容
            name = re.findall(r"UserName=w+", str(r.content))
            passw = re.findall(r"Password=w+", str(r.content))
            #取返回值
            name = name[0]
            passw = passw[0]
            print(name)
            print(passw)
            #这里可以加写入文件的语句
        except:
            pass
    #xpath匹配模型
    def Xpathtest(url):
        #请求url
        try:
            r = requests.get(url,verify = False,timeout=5)
            #print(r)
            #print(type(r))
            #url返回内容进行编码
            r.encoding = 'utf-8'
            #content=r.content.decode('utf-8')
            #print(str(r.content.decode('utf-8')))
            #content = etree.HTML(r.content.decode('utf-8'))
            #print(r.text)
            #html = r.data.decode('utf-8', 'ignore')
            #转换成可以进行xpath读取的格式存起来。
            _element = etree.HTML(r.text)
            #print(type(_element))
            text = _element.xpath("//div[@class='post-meta wrapper-lg']/h2[@class='m-t-none text-ellipsis index-post-title text-title']/a/text()")
            print(text)
            #ipdata = '
    '.join(text)
            #如果获取的是数组可以通过遍历进行输出
            #for i in text:
            #    print(i)
            # 这里可以加写入文件的语句
        except:
            pass
    if __name__ == '__main__':
        file = open('edu.txt', 'r')
        number = file.readlines()
        for i in number:
            i = i.rstrip()
            url = str(i)
            Retest(url)    #账号密码获取
        #url=""
        #Xpathtest(url)
  • 相关阅读:
    记一次大数据量后台服务的性能优化(转载)
    javascript void(0)
    IE11浏览器设置为兼容不同IE版本
    Asp.net WebForm(4) Server对象、跳转分析、验证控件和站点导航
    http请求错误码(转载)
    windows系统和IE的兼容性问题
    Lombok常用注解
    Typora配置图床PicGo,使用阿里云Oss 存储
    Picgo +sm.ms打造免费图床个人工具
    OSS —— 对象存储介绍
  • 原文地址:https://www.cnblogs.com/sunny11/p/14930967.html
Copyright © 2011-2022 走看看