精华内容
下载资源
问答
  • ##########查找a标签, for a in soup.find_all(‘a’, href=True): if a.get_text(strip=True): ####### 获取href中的 m=a[‘href’] #获取a标签的 l=a.string n=titleurl ####### 拼接titleurl和href print(l,...

    import requests
    from bs4 import BeautifulSoup
    ####url,titleurl,headers 已修改为Google网站。
    url = ‘https://mail.google.com/mail/’
    titleurl = ‘www.google.com’
    headers = {
    ‘Host’: ‘www.google.com’,
    ‘Referer’: ‘https://mail.google.com/mail/u/0/’,
    ‘User-Agent’: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36}
    res = requests.get(url,headers = headers)
    res.encoding = ‘utf-8’
    html=res.text
    soup = BeautifulSoup(html,“html.parser”)
    ##########查找a标签,
    for a in soup.find_all(‘a’, href=True):
    if a.get_text(strip=True):
    ####### 获取href中的值
    m=a[‘href’]
    #获取a标签的值
    l=a.string
    n=titleurl
    ####### 拼接titleurl和href
    print(l,n+m)

    展开全文
  • python获取页面所有a标签下href

    万次阅读 多人点赞 2018-11-02 10:49:05
    参考下面的链接中的内容: ... # -*- coding:utf-8 -*- #python 2.7 #http://tieba.baidu.com/p/2460150866 #标签操作 from bs4 import BeautifulSoup import urll...

    参考下面的链接中的内容:

    https://blog.csdn.net/suibianshen2012/article/details/61915222

    # -*- coding:utf-8 -*-
    #python 2.7
    #http://tieba.baidu.com/p/2460150866
    #标签操作
    
    
    from bs4 import BeautifulSoup
    import urllib.request
    import re
    
    
    #如果是网址,可以用这个办法来读取网页
    #html_doc = "http://tieba.baidu.com/p/2460150866"
    #req = urllib.request.Request(html_doc)  
    #webpage = urllib.request.urlopen(req)  
    #html = webpage.read()
    
    
    
    html="""
    <html><head><title>The Dormouse's story</title></head>
    <body>
    <p class="title" name="dromouse"><b>The Dormouse's story</b></p>
    <p class="story">Once upon a time there were three little sisters; and their names were
    <a href="http://example.com/elsie" class="sister" id="xiaodeng"><!-- Elsie --></a>,
    <a href="http://example.com/lacie" class="sister" id="link2">Lacie</a> and
    <a href="http://example.com/tillie" class="sister" id="link3">Tillie</a>;
    <a href="http://example.com/lacie" class="sister" id="xiaodeng">Lacie</a>
    and they lived at the bottom of a well.</p>
    <p class="story">...</p>
    """
    soup = BeautifulSoup(html, 'html.parser')   #文档对象
    
    
    #查找a标签,只会查找出一个a标签
    #print(soup.a)#<a class="sister" href="http://example.com/elsie" id="xiaodeng"><!-- Elsie --></a>
    
    for k in soup.find_all('a'):
        print(k)
        print(k['class'])#查a标签的class属性
        print(k['id'])#查a标签的id值
        print(k['href'])#查a标签的href值
        print(k.string)#查a标签的string
    
        如果,标签<a>中含有其他标签,比如<em>..</em>,此时要提取<a>中的数据,需要用k.get_text()
    

    soup = BeautifulSoup(html, 'html.parser')   #文档对象
    #查找a标签,只会查找出一个a标签

    for k in soup.find_all('a'):
        print(k)
        print(k['class'])#查a标签的class属性
        print(k['id'])#查a标签的id值
        print(k['href'])#查a标签的href值
        print(k.string)#查a标签的string

        如果,标签<a>中含有其他标签,比如<em>..</em>,此时要提取<a>中的数据,需要用k.get_text()

        通常我们使用下面这种模式也是能够处理的,下面的方法使用了get()。

     html = urlopen(url)
     soup = BeautifulSoup(html, 'html.parser')
     t1 = soup.find_all('a')
     print t1
     href_list = []
     for t2 in t1:
        t3 = t2.get('href')
        href_list.append(t3)

     

     

    展开全文
  • 原英文标题How can I get href links from HTML using Python?import urllib2website = "WEBSITE"openwebsite = urllib2.urlopen(website)html = getwebsite.read()print html到现在为止还挺好。但我只希望纯文本...

    原英文标题

    How can I get href links from HTML using Python?

    import urllib2

    website = "WEBSITE"

    openwebsite = urllib2.urlopen(website)

    html = getwebsite.read()

    print html

    到现在为止还挺好。

    但我只希望纯文本HTML中的href链接。 我怎么解决这个问题?

    9 个回复:

    ===============>>#1 票数:89 已采纳

    from BeautifulSoup import BeautifulSoup

    import urllib2

    import re

    html_page = urllib2.urlopen("http://www.yourwebsite.com")

    soup = BeautifulSoup(html_page)

    for link in soup.findAll('a'):

    print link.get('href')

    如果您只想要以http://开头的链接,您应该使用:soup.findAll('a', attrs={'href': re.compile("^http://")})

    ===============>>#2 票数:28

    代码可能看起来像这样:from HTMLParser import HTMLParser

    class MyHTMLParser(HTMLParser):

    def handle_starttag(self, tag, attrs):

    # Only parse the 'anchor' tag.

    if tag == "a":

    # Check the list of defined attributes.

    for name, value in attrs:

    # If href is defined, print it.

    if name == "href":

    print name, "=", value

    parser = MyHTMLParser()

    parser.feed(your_html_string)

    注意: HTMLParser模块已在Python 3.0中重命名为html.parser。 将源转换为3.0时,2to3工具将自动调整导入。

    ===============>>#3 票数:12

    看看使用漂亮的汤html解析库。

    你会做这样的事情:import BeautifulSoup

    soup = BeautifulSoup.BeautifulSoup(html)

    for link in soup.findAll("a"):

    print link.get("href")

    ===============>>#4 票数:8

    使用BS4执行此特定任务似乎有点过分。

    尝试改为:website = urllib2.urlopen('http://10.123.123.5/foo_images/Repo/')

    html = website.read()

    files = re.findall('href="(.*tgz|.*tar.gz)"', html)

    print sorted(x for x in (files))

    我仅在我从一个公开文件夹中提取文件列表的场景中测试了它,该文件夹中公开了files \\文件夹,例如:

    1SWUx.jpg

    我得到了URL下的files \\ folders的排序列表

    ===============>>#5 票数:5

    与真正的大师相比,我的答案可能很糟糕,但是使用一些简单的数学,字符串切片,查找和urllib,这个小脚本将创建一个包含链接元素的列表。 我测试谷歌和我的输出似乎是对的。 希望能帮助到你!import urllib

    test = urllib.urlopen("http://www.google.com").read()

    sane = 0

    needlestack = []

    while sane == 0:

    curpos = test.find("href")

    if curpos >= 0:

    testlen = len(test)

    test = test[curpos:testlen]

    curpos = test.find('"')

    testlen = len(test)

    test = test[curpos+1:testlen]

    curpos = test.find('"')

    needle = test[0:curpos]

    if needle.startswith("http" or "www"):

    needlestack.append(needle)

    else:

    sane = 1

    for item in needlestack:

    print item

    ===============>>#6 票数:3

    使用BeautifulSoup和Python 3的请求:import requests

    from bs4 import BeautifulSoup

    page = requests.get('http://www.website.com')

    bs = BeautifulSoup(page.content, features='lxml')

    for link in bs.findAll('a'):

    print(link.get('href'))

    ===============>>#7 票数:2

    这是@ stephen的答案的懒惰版本from urllib.request import urlopen

    from itertools import chain

    from html.parser import HTMLParser

    class LinkParser(HTMLParser):

    def reset(self):

    HTMLParser.reset(self)

    self.links = iter([])

    def handle_starttag(self, tag, attrs):

    if tag == 'a':

    for name, value in attrs:

    if name == 'href':

    self.links = chain(self.links, [value])

    def gen_links(f, parser):

    encoding = f.headers.get_content_charset() or 'UTF-8'

    for line in f:

    parser.feed(line.decode(encoding))

    yield from parser.links

    像这样使用它:>>> parser = LinkParser()

    >>> f = urlopen('http://stackoverflow.com/questions/3075550')

    >>> links = gen_links(f, parser)

    >>> next(links)

    '//stackoverflow.com'

    ===============>>#8 票数:2

    这是迟到的回答,但它适用于最新的python用户:from bs4 import BeautifulSoup

    import requests

    html_page = requests.get('http://www.example.com').text

    soup = BeautifulSoup(html_page, "lxml")

    for link in soup.findAll('a'):

    print(link.get('href'))

    不要忘记安装“ requests ”和“ BeautifulSoup ”包以及“ lxml ”。 使用.text以及否则会抛出异常。

    “ lxml ”用于删除要使用的解析器的警告。 您也可以使用“ html.parser ”,无论哪种情况适合您的情况。

    ===============>>#9 票数:0

    这个答案类似于其他requests和BeautifulSoup ,但使用列表理解。

    因为find_all()是Beautiful Soup搜索API中最流行的方法,所以你可以使用soup("a")作为soup.findAll("a")的快捷方式并使用list comprehension:import requests

    from bs4 import BeautifulSoup

    URL = "http://www.yourwebsite.com"

    page = requests.get(URL)

    soup = BeautifulSoup(page.content, features='lxml')

    # Find links

    all_links = [link.get("href") for link in soup("a")]

    # Only external links

    ext_links = [link.get("href") for link in soup("a") if "http" in link.get("href")]

    展开全文
  • def get_title_html(html_1): # ... title_url_Date=soup.find('div',class_='clearfix dirconone').find_all('li') for i in title_url_Date: # print(i) url=i.find('a')['href'] print(url)
  • 获取一组href元素属性的 lst = driver.find_elements_by_class_name(ib-it-text) for lst in lst: lst = lst.get_attribute(href) print(lst.get_attribute(href)) 以上这篇Python+selenium 获取一组元素属性...
  • 通过html元素获取页面的所有href,然后逐个爬取

    本篇博客是上篇博客(http://blog.csdn.net/trisyp/article/details/78732630)的传参版,即通过html元素获取页面的所有href,然后逐个爬取

    完整代码如下:

    import requests
    from bs4 import BeautifulSoup
    import os
    import time
    import datetime as dt
    from datetime import datetime
    
    week_day_dict = ['周一', '周二', '周三', '周四', '周五', '周六', '周日']
    
    def getHTML(url):
        headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3236.0 Safari/537.36'}
        r = requests.get(url, headers)
        r.raise_for_status()
        r.encoding = r.apparent_encoding
        r.close()
        return r.text
    
    def getPages(html):
        soup = BeautifulSoup(html, 'html.parser')  # 用HTML解析网址
        tag = soup.find_all('table', attrs={'class': {'m-page'}})
        pageTag = tag[0].find_all('ul')
        pageTag1 = pageTag[0].find_all('li')
        pageCount = pageTag1[-3].text
        return int(pageCount)
    
    def getHrefs(html):
        soup = BeautifulSoup(html, 'html.parser')  # 用HTML解析网址
        tag = soup.find_all('table', attrs={'class': {'m-tab'}})
        hrefTag = tag[0].find_all('tr')
        del hrefTag[-1]
        del hrefTag[-1]
        hrefs = []
        for i in range(len(hrefTag)):
            hrefTag1 = hrefTag[i].find_all('td')
            hrefTag2 = hrefTag1[-2].find_all('a')
            hrefs.append(hrefTag2[0].get('href'))
        return hrefs
    
    
    def getTableName(html): #获取每个table的表名
        soup = BeautifulSoup(html, 'html.parser')  # 用HTML解析网址
        tag = soup.find_all('div', attrs={'class': {'kj-tit'}})
        tableName = []
        for infoi in tag:
            tableName.append(infoi.text.replace("\n", "").replace(" ", ""))
        return tableName
    
    
    def fillUnivlist(html): #保存网页中间两个表格的内容
        result = []
        tableNames = getTableName(html)  # 获取表名
        soup = BeautifulSoup(html, 'html.parser')  # 用HTML解析网址
        timeTag = soup.find_all('div', attrs={'class': {'c-time'}})
        numTag = soup.find_all('div', attrs={'class': {'c-num'}})
        ctime = timeTag[0].text[29:39]
        num = numTag[0].text[0:5]
        ctimeweek = datetime.strptime(ctime, "%Y-%m-%d")
        if week_day_dict[ctimeweek.weekday()-1]==num[0:2]:
            oneday = dt.timedelta(days=1)
            ctimeweek1 = ctimeweek-oneday
            ctime1 = ctimeweek1.strftime("%Y-%m-%d")
            dateNumbers = ctime1.replace("-", "") + num[2:5]
        else:
            dateNumbers = ctime + num
        tag = soup.find_all('table', attrs={'class': {'kj-table'}})  # 获取所有表格
        # print(str(tag[0]))
        for i in range(1, 3):
            infoTag = tag[i]
            contentTr = infoTag.find_all('tr')
            for j in range(len(contentTr)):
                if j == 0:
                    contentTh = contentTr[j].find_all('th')
                    info1 = dateNumbers + "," + tableNames[i]
                    for infok in contentTh:
                        info1 = info1 + "," + infok.text.replace(" ", "")
                else:
                    contentTd = contentTr[j].find_all('td')
                    info1 = dateNumbers + "," + tableNames[i]
                    for infok in contentTd:
                        info1 = info1 + "," + infok.text
                result.append(info1)
        return result
    
    
    def writeUnivlist(result, fpath, num):
        with open(fpath, 'a', encoding='utf-8') as f: #以追加的方式存储内容
            for i in range(num):
                f.write(result[i] + '\n')
            f.close()
    
    
    def main():
        startDate = input("startDate(格式为yyyy-mm-dd):")
        lastDate = input("lastDate(格式为yyyy-mm-dd):")
        url = "http://info.sporttery.cn/basketball/match_result.php?page=1&start_date="+startDate+"&end_date="+lastDate
        html = getHTML(url)
        pageNumber = getPages(html)
        time.sleep(2)
        hrefs = getHrefs(html)
        count = 1
        for i in range(2, pageNumber+1):
            url = "http://info.sporttery.cn/basketball/match_result.php?page="+str(i)+"&start_date="+startDate+"&end_date="+lastDate
            html = getHTML(url)
            time.sleep(1)
            href = getHrefs(html)
            for hj in href:
                hrefs.append(hj)
            time.sleep(1)
            count += 1
            print("\r当前page进度: {:.2f}%".format(count * 100 / pageNumber), end="")
    
        # output_href = 'D:/JCWBasketballHrefs.txt'
        # writeUnivlist(hrefs, output_href, len(hrefs))
    
        count = 0
        output_file = 'D:/JCWBasketball.txt'
        hrefNumber = len(hrefs)
        for i in range(hrefNumber):
            time.sleep(1)
            result = fillUnivlist(getHTML(hrefs[i]))
            time.sleep(1)
            writeUnivlist(result, output_file, len(result))
            count += 1
            print("\r当前href进度: {:.2f}%".format(count * 100 / hrefNumber), end="")
    
    if __name__ == '__main__':
        main()
    

    展开全文
  • <a class="price_down_remind score write_comment" href="javascript:void(0);" id="price_down">降价通知 ¥</span>89.00 ``` 请问第二个P标签里面的89怎么通过python取出来?
  • Python获取外网ip

    万次阅读 2017-05-16 22:24:19
    Python获取外网ip获取外网ip而不是局域网ip。网上有些教程但是不能用。因为有些地址已经过期用不了了。此处介绍一种用ip138来查本机外网ip的方法。直接上代码。源码import requests# 获取外网IP def get_out_ip(): ...
  • /usr/bin/env python # -*- coding: utf-8 -*- import urllib2 import urllib import cookielib import json import httplib import re import requests from lxml import etree import StringIO import time s...
  • 学习过程中需要用Python获取页面的标签进行输出。因此使用Python+selenium来实现。 实现过程 注意事项: 1、浏览器驱动需要对应到浏览器版本下载后才可以使用。 2、Python代码需要指定下载的浏览器驱动的位置,...
  • 使用python获取国家省市区资料 写在前言 后端主要侧重的是思维思路,语言只是一种表达。本篇文章试图侧重于思路讲解。如果有什么描述模糊之处,望请留言提醒,一起共勉。 我主要使用php,python只是现学现用。主要想...
  • import requests from bs4 import BeautifulSoup ... #获取服务器的响应内容,并设置最大请求时间为6秒 res = requests.get(url, timeout = 6) #判断返回状态码是否为200 res.raise_for_status() #
  • # coding=utf-8 from bs4 import BeautifulSoup ...# 定义一个获取url页面下label标签的attr属性的函数 def getHtml(url, label, attr): response = requests.get(url) response.encoding = 'utf-8' ...
  • python 根据a标签查找href

    千次阅读 2018-11-10 19:27:53
    /usr/bin/env python # -*- coding: utf-8 -*- import urllib2 import urllib import cookielib import json import httplib import re import requests from lxml import etree import StringIO import time s...
  • python 获取网页的内容

    万次阅读 多人点赞 2018-11-07 15:07:16
    1.安装pip 我的个人桌面系统用的linuxmint,系统默认没有安装pip,考虑到后面安装... $ sudo apt install python-pip 安装成功,查看PIP版本:     1 $ pip -V 2.安装reques...
  • 提取属性 之前使用爬虫解析HTML一直使用的是bs4里面的BeautifulSoup,最近因为模拟登陆要使用... 这里展示一下使用提取hrtf的: div = driver.find_element_by_css_selector('#CSS_Selector') href = div.g...
  • 获取页面标签中的href值

    千次阅读 2017-01-09 16:33:03
    a href="http.www.baidu.com">百度a> url = driver.find_element_by_xpath("标签a的xpath").get_attribute("href") print url
  • python 正则获取html中的

    千次阅读 2015-08-21 15:57:16
    |</span><a href=>倒序浏览 ;position:relative;top:-6px;"> ; width: 130px; height: 24px;"><wb:follow-button uid="" type="gray_2" width="136" height="24"></wb:follow-button> ; width: 160px; height: ...
  • python正则表达式之获取a标签href属性

    千次阅读 2020-03-26 10:22:45
    url = re.compile(r'<h2.*?><a\b[^>]+\bhref=\\"([^"]*)"[^>]*>.+?</a></h2>').findall(li) <h2.?> #表示在h2标签内 ...]+ #匹配a标签中href之前的内容 \bhref="([^"])" ...
  • Python获取网页数据

    2017-09-07 15:16:39
    #coding=utf-8 import urllib.request import re import time #lxml提供了丰富的操作xml的api ...#获取指定url响应页面内容 def getHtml(url):  page = urllib.request.urlopen(url)  html
  • 获取百度界面上所有a标签内的href属性 思路 思路类似爬虫 https://blog.csdn.net/Amy8020/article/details/88844309 读取网页中源码 根据网页源码制定正则表达式,进行匹配 将匹配结果存入指定文件 知识点 href+...
  • response.css(".copyright-area a::attr(href)").extract()[0]  
  • 网页由多种元素组成,一个元素可能有多个属性,例如class,id,name,text,href,value等,本文以提取网页所有超链接信息为实例。相关步骤可参考Python爬虫(一) from bs4 import BeautifulSoup #导入架包 import ...
  • python获取页面元素的内容及长度

    千次阅读 2016-06-17 13:44:42
    获取option的和文本 麦当劳 肯德基 必胜客 汉堡王 您输入的用户名或密码有误。 javascript var oSelect=document.getElementByIdx_x_x("ss"); oSelect....
  • 'container-header-blog'}) #正则表达式形式 \d 匹配数字 \d+ 尽量匹配多位数字 print(re.findall(r'\d+',str(listTotal))[0]) #78 参考:python爬虫获取任意页面的标签和属性(包括获取a标签的href属性)
  • python 获取alert信息并截取alert图片

    千次阅读 2016-06-16 15:33:50
    获取option的和文本 麦当劳 肯德基 必胜客 汉堡王 您输入的用户名或密码有误。 javascript var oSelect=document.getElementByIdx_x_x("ss"); oSelect....
  • Python+Selenium练习篇之31-获取页面元素的href属性

    万次阅读 多人点赞 2017-04-12 11:11:51
    本文来介绍如何通过Selenium获取页面元素的某一个属性。一个元素可能有多个属性,例如 class, id, name, text, href, vale等等。这里我们举例一个爬虫中经常需要处理的链接问题:找出当前页面所有的超链接。 已百度...
  • Python+selenium:获取一组元素属性

    千次阅读 2017-03-07 16:56:11
    获取一组href元素属性的 lst = driver.find_elements_by_class_name("ib-it-text") for lst in lst: lst = lst.get_attribute("href") print(lst.get_attribute("href"))
  • python3爬虫获取html内容及各属性

    万次阅读 2017-08-07 19:12:42
    今天用到BeautifulSoup解析爬下来的网页数据 首先导入包from bs4 import BeautifulSoup 然后可以利用urllib请求数据 记得要导包 import urllib.request ...#取标签里属性 通过href获取 html[ 'href']

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 25,947
精华内容 10,378
关键字:

python获取href的值

python 订阅