for tr in trs: t1 = tr.findALL('td')[0] t2 = tr.findAll('td')[1] ip = t1.string # print(ip) port = t2.string print(ip,port) 为什么得不到值
时间: 2024-02-07 22:02:16 浏览: 31
这段代码可能无法正常工作,因为你在调用 `findAll` 方法时使用了错误的大小写。正确的方法名应该是 `findAll` 而不是 `findALL`。另外,这里的 `td` 标签是否存在也需要进行检查,否则可能会引发 `AttributeError` 或 `TypeError`。你可以试试这样的代码:
```python
for tr in trs:
tds = tr.findAll('td')
if len(tds) == 2:
ip = tds[0].string
port = tds[1].string
print(ip, port)
```
这里的 `len(tds)` 用于检查是否有足够的 `td` 标签,以避免引发异常。
相关问题
from bs4 import BeautifulSoup import requests import openpyxl def get_html(url): try: r=requests.get(url) r.raise_for_status() r.encoding=r.apparent_encoding return r.text except: r='fail' return r def get_contents(ulist,rurl): soup=BeautifulSoup(rurl,'html.parser') trs=soup.find_all('tr') for tr in trs: ui=[] for td in tr: ts=td.string ts=ts.strip() if ts == '': continue ui.append(ts) ulist.append(ui) def saveList(ulist): wb=openpyxl.Workbook() ws=wb.active r=1 for line in ulist: for col in range(1,len(line)+1): ws.cell(row=r,column=col).value=line[col-1] r=r+1 wb.save('saveqiye500.xlsx') if __name__=="__main__": urli=[] url="https://www.maigoo.com/news/540732.html" rs=get_html(url) get_contents(urli,rs) saveList(urli)
这段代码是一个 Python 爬虫,目的是从指定网址 https://www.maigoo.com/news/540732.html 中获取企业社会责任500优完整名单,并将结果保存在 Excel 表格中。
代码中使用了 requests 库和 BeautifulSoup 库来获取网页内容和解析网页。其中,get_html() 函数用于获取网页内容,get_contents() 函数用于解析网页内容并将结果保存在一个列表中,saveList() 函数用于将列表中的数据保存在 Excel 表格中。
代码中的 if __name__=="__main__": 是 Python 中的特殊语句,表示如果该脚本被直接运行,而不是被导入到其他脚本中,那么就执行下面的语句。在这里,程序首先定义了一个空列表 urli,然后调用 get_html() 函数获取网页内容,接着将网页内容传递给 get_contents() 函数解析网页,并将解析得到的结果保存在 urli 列表中,最后将 urli 列表中的数据保存在 Excel 表格中。
不过需要注意的是,这段代码并没有考虑网页爬取的法律和道德问题,如果没有得到网站所有者的许可,对网站进行爬取可能会触犯法律,严重的甚至可能会导致刑事责任。因此,建议在进行网页爬取前,先了解相关法律法规和伦理道德规范,并遵守相关规定。
from bs4 import BeautifulSoup import requests import openpyxl def get_html(url): try: r=requests.get(url) r.raise_for_status() r.encoding=r.apparent_encoding return r.text except: r='fail' return r def get_contents(urlist,rurl): soup=BeautifulSoup(rurl,'html.parser') trs=soup.find_all('tr') for tr in trs: un=[] for td in tr: ts=td.string ts=ts.strip() if ts == '': continue un.append(ts) urlist.append(un) def saveList(urlist): wb=openpyxl.Workbook() ws=wb.active r=1 for line in urlist: for col in range(1,len(line)+1): ws.cell(row=r,column=col).value=line[col-1] r=r+1 wb.save('University.xlsx') if __name__=="__main__": urlist=[] url="http://heucice.hrbeu.edu.cn/4017/list.htm" rurl=get_html(url) get_contents(urlist,rurl) saveList(urlist)
这段代码是一个简单的爬虫程序,用于爬取哈尔滨工程大学(HRBEU)信息与通信工程学院的本科教学网站上的“本科生教学管理”栏目下的“本科生教学管理办公室”页面中的表格内容,并将其保存到一个名为“University.xlsx”的 Excel 文件中。
在程序中,get_html() 函数用于获取网页的 HTML 内容,get_contents() 函数用于解析 HTML 内容,提取表格中的数据,并将其存储到一个列表中,saveList() 函数用于将列表中的数据保存到 Excel 文件中。
在程序的主函数中,首先定义了一个列表 urlist,用于存储表格中的数据。然后,定义了一个变量 url,用于存储目标页面的 URL 地址。接着,调用 get_html() 函数获取目标页面的 HTML 内容,并将其传递给 get_contents() 函数进行解析。最后,将解析后的数据传递给 saveList() 函数,将其保存到 Excel 文件中。
需要注意的是,爬取网页内容时需要遵守相关的法律法规和网站的规定,避免对目标网站造成不必要的影响。