python - 使用 href 链接抓取网页
问题描述
我正在抓取此页面(“http://mahaprantikssksamaj.com/ssk-samaj-maharashtras.aspx”)。我正在存储有效 url 并请求重定向到下一页并为每个有效 url 抓取下一页的数据。
页面的数据存储在表中,我收到此错误:“”AttributeError:ResultSet对象没有属性'find'。您可能将项目列表视为单个项目。当您打算调用 find() 时,您是否调用了 find_all()?"" 我的代码在这里:
from bs4 import BeautifulSoup
import requests
r = requests.get('http://mahaprantikssksamaj.com/ssk-samaj-maharashtras.aspx')
soup = BeautifulSoup(r.text, 'html.parser')
for i in range(36):
print(i)
url = 'http://mahaprantikssksamaj.com/ssk-prantik-members.aspx?id={}'.format(i)
r = requests.get(url)
web = BeautifulSoup(r.content,"html.parser")
table= web.findAll("table",id="DGORG")
print(table)
table_body = table.find('tbody')
rows = table_body.find_all('tr')
for tr in rows:
cols = tr.find_all('td')
for td in cols:
print (td)
print(table) 给出了 o/p 这个:
<div class="memcss">
<table border="1" style="width:90%;padding:10px;margin:0px 0px 20px
20px;box-shadow:2px 2px 2px #000000">
<tr>
<td colspan="2" style="text-align:center"><h5>Mr. Jaydeo Mahadeosa
Pawar</h5></td>
</tr>
<tr>
<td colspan="2" style="text-align:center"><h6>Secretory</h6></td>
</tr>
<tr>
<td style="width:25%;height:30px;text-align:right">Address : </td>
<td> Pune</td>
</tr>
<tr>
<td style="width:20%;height:30px;text-align:right">City : </td>
<td> Pune</td>
</tr>
<tr>
<td style="width:20%;height:30px;text-align:right">Mobile : </td>
<td> </td>
</tr>
</table>
</div>
</td>
</tr><tr>
<td>
试图在 csv 文件中只存储姓名、职务、地址和手机号码。任何人都可以在我错的地方提供帮助。在此先感谢。
解决方案
要从连接到view members
登录页面中的链接的每个表中获取所有内容,您可以遵循以下方法:
from bs4 import BeautifulSoup
from urllib.parse import urljoin
import requests
link = "http://mahaprantikssksamaj.com/ssk-samaj-maharashtras.aspx"
res = requests.get(link)
soup = BeautifulSoup(res.text, 'html.parser')
for item in soup.select("a[style$='text-decoration:none']"):
req = requests.get(urljoin(link,item.get("href")))
sauce = BeautifulSoup(req.text,"html.parser")
for elem in sauce.select(".memcss table tr"):
data = [item.get_text(strip=True) for item in elem.select("td")]
print(data)
输出如下:
['Shri. Narsinhasa Narayansa Kolhapure']
['Chairman']
['Address :', 'Ahamadnagar']
['City :', 'Ahamadnagar']
['Mobile :', '2425577']
推荐阅读
- kubernetes - Spring Boot 内存计算器不使用容器内存限制
- node.js - Webpack 忽略 node_modules 中的类型检查 .ts 文件
- python-2.7 - 使用 Python2 和 scrapy ImportError: cannot import name suppress
- python - 如何在使用 python 的 Windows 中使用相对路径而不是完整路径
- python - else: under if: in python的对齐方式
- c# - Polly .Net 使用 IHostApplicationLifetime 优雅地关闭应用程序
- sql - 如何在 XML 中将常量添加到我的根目录?
- python - 带有嵌套字典值/参数的 Python POST 请求
- sql - 动态增加数组的大小
- orocommerce - Oro PriceList 业务单位所有权