我想取消所有成员的详细信息

2024-04-26 10:01:07 发布

您现在位置:Python中文网/ 问答频道 /正文

import requests
from bs4 import BeautifulSoup

url = 'http://www.gmcgujarat.org/searchdoctor.aspx'
html = requests.get(url).text
soup = BeautifulSoup(html, 'html.parser')

name = soup.find(" ")
for count in range(3333,4444):
        data = {name: " "}
        r = requests.post(url, data=data)
        soup = BeautifulSoup(r.text, 'html.parser')

        table = soup.find('table',{"id":"divtest"})
        for tr in table.find_all('tr',class_='odd')[1:5]:
            print tr.text

代码没有给出'tr'和'td'数据,因为'tr'是以奇偶形式给出的,我不知道如何从中删除数据。你知道吗


Tags: textnameinimportparserurlfordata
1条回答
网友
1楼 · 发布于 2024-04-26 10:01:07

在这个网站上获得所有td价值的最简单方法是

data = {name: " "}
r = requests.post(url, data=data)
soup = BeautifulSoup(r.text, 'html.parser')

table = soup.find('table',{"id":"divtest"})
tr_arr = []
for tr in table.find_all('tr'):
  tr_arr.append([td.string for td in tr.find_all('td')])

因为您需要进一步挖掘tr以找到所有td


但是假设你只关心class='odd',那么在find_all中添加class_='odd'已经是正确的方法了。你知道吗

但是,如果某些行(tr)包含您不需要的数据怎么办。假设您只想获得带有class='odd'class='even'的所有行,但是有些行带有class='na'。你知道吗

实际上,您可以将dict传递给find_all中的类标识符,如下所示:

table.find_all('tr', {"class": ["odd", "even"]})

或者更进一步通过

table.find_all('tr', class_= lamdba x: x is not None and x in ['odd','even'])

相关问题 更多 >