标签: beautifulsoup

Python中具有多个属性的美丽汤查询

我试图找到HTML的这些部分,但只是某个月(04)的部分,区别在于链接的结尾.

<td class="">
    <div class="dayContainer">
        <a href="/parks/magic-kingdom/calendardayview/?asmbly_day=20120402"> 
            <p class="day"> 2</p> 
            <p class="moreLink">
                Park Hours
                <br />
                8:00 AM - 1:00 AM
                <br /><br/>
                Extra Magic Hours
                <br />
                7:00 AM - 8:00 AM
                <br /><br/>
            </p> 
        </a> 
    </div>
</td>
Run Code Online (Sandbox Code Playgroud)

我可以通过使用找到所有日期findAll('div', attrs={'class':'dayContainer'}),但这会给我网站中的所有日期.我试着按照这个例子,但我尝试的一切都给我留下了空白的结果.以下是我现在要查找的部分:

days = soup.findAll(lambda date: date.name == 'a' and date.text[-4:-2] == '04' and date.findParent('div', attrs={'class':'dayContainer'}))
print days
Run Code Online (Sandbox Code Playgroud)

知道我哪里出错了吗?谢谢!这是网站,如果有人需要它.

python beautifulsoup

1
推荐指数
1
解决办法
4986
查看次数

如何使用BeautifulSoup查找HTML页面中<p>元素内的所有文本

我需要在Python中使用BeautifulSoup查找HTML文件中段落元素内的所有可见标记.
例如,
<p>Many hundreds of named mango <a href="/wiki/Cultivar" title="Cultivar">cultivars</a> exist.</p>
应该返回:
Many hundreds of cultivars exist.

PS某些文件包含需要提取的Unicode字符(印地语).
任何想法如何做到这一点?

python unicode beautifulsoup html-parsing

1
推荐指数
2
解决办法
1万
查看次数

heroku美丽的汤?

我试图在heroku上使用Beautiful soup部署一个应用程序并运行像"python manage.py"这样的命令.我的命令使用Beautiful soup library.虽然这个命令在我的本地机器上完美运行但是在heroku上找不到漂亮的汤模块.我尝试使用pip install beautifulsoup安装它,然后将其添加到需求文件并使用git推送更新.但它仍然找不到美丽的汤模块.我知道它没什么特别的,我是heroku,django的新手.我不确定如何调试它?有人能引导我朝正确的方向发展吗?

python django heroku beautifulsoup virtualenv

1
推荐指数
1
解决办法
2402
查看次数

如何填写html表单并从网站上删除?

我正在研究一个学校项目.我想建立一个Andriod应用程序但在此之前我想从220.225.101.27/MPLogin/eSewa/VehicleSearch.aspx我的数据库中删除一些数据并且必须保存.当你进入这个网站,你将不得不填写车辆注册号,然后它将显示有关车辆的所有详细信息.我不需要完整的详细信息,但我只需要主人的名字.我想得到所有组合的详细信息车辆登记号码.

我做了一些谷歌搜索发现了一些python库.

  1. BeautifulSoup
  2. Scrapy
  3. 机械化

我是python的新手.请忽略如果我混合了一些术语.我只是想知道:

  1. 我应该使用哪个图书馆?哪个最好?
  2. 关于填写html表单然后通过python获取详细信息我应该知道什么?
  3. 要成功完成所有这些工作我应该先知道什么?
  4. 我需要使用哪些python模块?
  5. 如何将此数据保存在我的数据库或某种Excel文件中?
  6. 该网站在.net会导致任何问题吗?

我已经阅读了Beautifulsoup的文档,通过使用这个我已成功打印了googlenews标题文本.但这是基本的.填写html表单然后获取详细信息很困难.

我知道这是很长的问题,但我想自己学习这些东西.如果有人可以一步一步指导我,那将是非常好的.

python mechanize beautifulsoup scrapy web-scraping

1
推荐指数
1
解决办法
1万
查看次数

BeautifulSoup寻找特定的孩子

我想使用BeautifulSoup在子元素中搜索特定属性,从我可以看到使用下面的方法,每个子节点都是一个字符串(child ['value']给我"字符串索引必须是整数"),这是不允许的选择基于属性或返回这些属性,这是我需要做的事情.

def get_value(container):
    html_file = open(html_path)
    html = html_file.read()
    soup = BeautifulSoup(html)
    values = {}
    container = soup.find(attrs={"name" : container})
    if (container.contents != []):
        for child in container.children:
            value = unicode(child['value']) # i would like to be able to search throught these children based on their attributes, and return one or more of their values
return value
Run Code Online (Sandbox Code Playgroud)

可能可以通过进一步child_soup Beautifulsoup(child)然后找到命令解决这个问题,但这看起来真的太可怕了,有人得到了更好的解决方案吗?

python children beautifulsoup elements

1
推荐指数
1
解决办法
3151
查看次数

BeautifulSoup .select()方法是否支持使用正则表达式?

假设我想使用BeautifulSoup解析HTML,并且想使用CSS选择器来查找特定标签。我会这样做

from bs4 import BeautifulSoup
soup = BeautifulSoup(html)
Run Code Online (Sandbox Code Playgroud)

如果我想找到一个标签,其“ id”属性的值为“ abc”,我可以这样做

soup.select('#abc')
Run Code Online (Sandbox Code Playgroud)

如果我想在当前标签下找到所有“ a”子标签,我们可以

soup.select('#abc a')
Run Code Online (Sandbox Code Playgroud)

但是现在,假设我想找到所有“ href”属性的值都以“ xyz”结尾的“ a”标签,为此,我想使用正则表达式,我希望

soup.select('#abc a[href] = re.compile(r"xyz$")')
Run Code Online (Sandbox Code Playgroud)

我似乎找不到任何内容表明BeautifulSoup的.select()方法将支持正则表达式。

python regex select beautifulsoup

1
推荐指数
1
解决办法
7052
查看次数

如何从这种情况下删除python的<table>结构?

如何使用python从HTML中删除"表"?

我有这样的情况:

paragraph = '''
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Quidem molestiae consequuntur officiis corporis sint.<br /><br />
<table>
<tr>
<td>
    text title
</td>
<td>
    text title 2
</td>
</tr>
</table>
<p> lorem ipsum</p>
'''
Run Code Online (Sandbox Code Playgroud)

如何使用python删除上面的表结构内容?我希望产生的输出如下:

paragraph = '''
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Quidem molestiae consequuntur officiis corporis sint.<br /><br />
<p> lorem ipsum</p>
'''
Run Code Online (Sandbox Code Playgroud)

python beautifulsoup python-2.7

1
推荐指数
1
解决办法
109
查看次数

在同一台机器上的Python 2和Python 3上安装Beautiful Soup(OS X)

因此,我在OS X上安装Beautiful Soup时遇到了问题,最终在终端中测试了几种不同的安装方法.方法1:

python setup.py install
Run Code Online (Sandbox Code Playgroud)

方法2:

easy_install BeautifulSoup
Run Code Online (Sandbox Code Playgroud)

方法3:

pip install BeautifulSoup
Run Code Online (Sandbox Code Playgroud)

最后我意识到问题是我在PyCharm中使用Python 3解释器,而Beautiful Soup安装在OS X附带的默认Python 2解释器上.在PyCharm中将解释器更改为Python 2使得Beautiful Soup工作得很好.

问题:我怎样才能 - 保留OS X的Python 2解释器 - 在OS X上的Python 3解释器上也安装Beautiful Soup?

python macos beautifulsoup pycharm

1
推荐指数
1
解决办法
5405
查看次数

Python:如何使用BeautifulSoup在<li>中获取文本

这是我要处理的html文件:

<ul class="canTouch" data-com="hrefTo,href:'/movie/246286?_v_=yes'">
    <li class='c1'>
        <b>Important text</b>
        <br><em>useless text </em><em style="margin-left: .1rem">useless text</em>
    </li>
    <li class="c2 ">
        <b>938.6</b><br/>
    </li>
    <li class="c3 ">19.7%</li>
    <li class="c4 ">19.6%</li>
    <li class="c5 ">
        <span style="margin-right:-.1rem">8.6%</span>
        <span style="padding-right:.24rem" class="_more"></span>
    </li>
</ul>
Run Code Online (Sandbox Code Playgroud)

文件中有很多ul标签,这是我的代码:

for ul in soup.find_all('ul')[3:]:
lis=ul.find_all('li')
for elem in lis:
    records.append(elem.text.strip())
Run Code Online (Sandbox Code Playgroud)

我不希望em标签中的无用文本,li但我需要标签中的重要文本b:

<li class='c1'>
    <b>Important text</b>
    <br><em>useless text<em style="margin-left: .1rem">useless text</em>
 </li>
Run Code Online (Sandbox Code Playgroud)

我该怎么办?

html python beautifulsoup html-parsing

1
推荐指数
1
解决办法
1766
查看次数

Python从多个页面请求.get()?

我正在学习如何使用python进行webscrape,我想知道是否可以抓取两个页面,requests.get()以便我不必进行两个单独的调用和变量.例如:

r1 = requests.get("page1")
r2 = requests.get("page2")

pg1 = BeautifulSoup(r1.content, "html.parser")
pg2 = BeautifulSoup(r2.content, "html.parser")
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,重复的代码.有什么方法吗?谢谢!

python beautifulsoup web-scraping python-requests

1
推荐指数
2
解决办法
2693
查看次数