如图,每家机构都是一个超链接,怎么把这些链接里的信息爬到一个Excel里,Python代码该怎么写?
import requests
import pandas as pd
headers = {
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36',
}
data = {
'orgType': '10',
}
response = requests.post('https://gs.sac.net.cn/publicity/getOrgStat', headers=headers, data=data)
company=pd.DataFrame(response.json()['data']['data'])
for n in range(len(company)):
data = {
'aoiId': company['orgId'][n],
'ptiId': '',
'_search': 'false',
'nd': '1691997627617',
'pageSize': '10000',
'pageNum': '1',
'orderBy': 'id',
'order': 'desc',
}
response = requests.post('https://gs.sac.net.cn/publicity/getPersonList', headers=headers, data=data)
employee=pd.DataFrame(response.json()['data']['data']['list'])
employee.to_excel(f"e:\{company['orgName'][n]}.xlsx")
可以使用lxml解析网页源码,得到连接后,然后再写入Excel文件中。
通过 selenium 或者 requests 模块,获取网页源代码,然后通过 xpath 或者 bs4 解析源代码,找到每一个 机构名称 对应的连接,如果是只包含 uri 的连接,这时需要我们通过导入 urljoin 模块(from urllib.parse import urljoin) 做个拼接。
爬取完成后,把数据保存到一个字典或者pandas的DataFrame对象中,示例代码如下:
import pandas as pd
## 格式类似于这样的
data = [ {'机构名称':'','地址':''},{'机构名称':'','地址':''} ]
df = pd.DataFrame(data)
# 如果是 xlsx 结尾的,需要安装 openpyxl, pip install openpyxl
df.to_excel( '自定义的excel名称.xlsx',index=False )
【以下回答由 GPT 生成】
requests
和BeautifulSoup
,用于发送HTTP请求并解析HTML页面。import requests
from bs4 import BeautifulSoup
def get_soup(url):
response = requests.get(url)
soup = BeautifulSoup(response.content, 'html.parser')
return soup
pandas
库来处理数据和生成Excel文件。import pandas as pd
def extract_info(url, output_file):
soup = get_soup(url)
# 从网页中提取链接信息
links = soup.find_all('a')
# 创建一个列表来存储爬取的数据
data = []
for link in links:
# 获取链接的文本和URL
text = link.text
href = link.get('href')
# 将链接的文本和URL添加到数据列表中
data.append([text, href])
# 使用pandas创建DataFrame对象
df = pd.DataFrame(data, columns=['Text', 'URL'])
# 将数据保存到Excel文件中
df.to_excel(output_file, index=False)
extract_info
函数,并传入要爬取的网页的URL和要保存的Excel文件名称。url = 'https://example.com' # 替换为实际的网页URL
output_file = 'output.xlsx' # 替换为实际的文件名
extract_info(url, output_file)
这样就能够将多个机构链接的信息爬取到Excel表格中了。
请注意,以上代码是一个简单的示例,实际应用中可能需要处理更复杂的网页结构和数据提取需求。根据具体情况,可能需要进一步优化代码并处理异常情况,例如处理网络请求失败或网页解析错误等。
【相关推荐】