zoukankan      html  css  js  c++  java
  • 数据获取的几种方法

    方法一:正则表达式

    import re
    import urllib2
    #不需要代理的
    res = urllib2.urlopen(url).read()
    #需要代理使用这个
    ueser-agent = 'user'
    headers ={'User-agent':ueser-agent}
    request = urllib2.Request(url,headers = headers)
    opener = urllib2.build_opener()
     proxy_params = {urlparse.urlparse(url).scheme:proxy}
    opener.add_heandler(urllib2.ProxyHandler(proxy_params))
    res = opener.open(request).read()
    print(res)
    #Regular是需要匹配数据的正则表达式
    print(re.findall(Regular,res))

    方法二:Beautiful Soup

    安装:

      pip install beautifulsoup4

    import re
    import urllib2
    from bs4 import BeautifulSoup
    #不需要代理的
    res = urllib2.urlopen(url).read()
    #需要代理使用这个
    ueser-agent = 'user'
    headers ={'User-agent':ueser-agent}
    request = urllib2.Request(url,headers = headers)
    opener = urllib2.build_opener()
     proxy_params = {urlparse.urlparse(url).scheme:proxy}
    opener.add_heandler(urllib2.ProxyHandler(proxy_params))
    res = opener.open(request).read()
    print(res)
    
    soup = BeautifulSoup(res,'html-parser')
    fixed_html = soup.prettity()
    print(fixed_html)
    #查找标签对应的数据
    #tag标签名,如'ul',attr标签属性及属性值组成的键值对,数据类型为字典,如:{'class':'country'}
    #查找单个标签
    tagData = soup.find(tag,attrs=attr)
    #查找同名的标签集
    tagsData = soup.find_all(tag)

    方发三:Lxml

    安装

      pip install lxml

    import re
    import urllib2
    import lxml
    #不需要代理的
    res = urllib2.urlopen(url).read()
    #需要代理使用这个
    ueser-agent = 'user'
    headers ={'User-agent':ueser-agent}
    request = urllib2.Request(url,headers = headers)
    opener = urllib2.build_opener()
     proxy_params = {urlparse.urlparse(url).scheme:proxy}
    opener.add_heandler(urllib2.ProxyHandler(proxy_params))
    res = opener.open(request).read()
    print(res)
    
    tree = lxml.html.fromstring(res)
    td = tree.cssselect('tr#place>td.area')[0]
    area = td.text_content()
    print(area)

      

  • 相关阅读:
    InterLockedIncrement and InterLockedDecrement函数原理
    矩阵文件书写的简洁代码
    注册自定义URL协议(zhuan)
    求整数的位数
    WinExec unicode 处理
    C++中如何获取对象的名字(变量名,注意不是类名)
    计算所与北大往事回顾
    不尚贤在人事管理中的作用
    寻找适合自己的无资金创业之路
    诺基亚:用薪酬激励员工
  • 原文地址:https://www.cnblogs.com/navysummer/p/9938650.html
Copyright © 2011-2022 走看看