import requests from bs4 import BeautifulSoup import pandas as pd import xlrd # 读取Excel文件中的小区名字 def read_excel(filename): data = pd.read_excel(filename) return data['小区名'].tolist() # 爬取二手房数据 def crawl_data(area): print(area) print('1') url = 'https://wx.ke.com/ershoufang/rs'+area # 无锡二手房页面 headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 Edge/16.16299' } params = { 'kw': area } response = requests.get(url, headers=headers, params=params) soup = BeautifulSoup(response.text, 'html.parser') # 解析页面数据 result = [] house_list = soup.find_all('div', class_='info clear') for house in house_list: title = house.find('div', class_='title').text.strip() address = house.find('div', class_='address').text.strip() house_Info = house.find('div', class_='houseInfo').text.strip() priceInfo = house.find('div', class_='priceInfo').text.strip() followInfo = house.find('div', class_='followInfo').text.strip() result.append({ 'title': title, 'address': address, 'house_info':house_Info, 'priceInfo':priceInfo, 'followInf':followInfo }) return result # 将数据保存到Excel文件中 def save_to_excel(data, filename): df = pd.DataFrame(data) df.to_excel(filename, index=False) # 主函数 if __name__ == '__main__': areas = read_excel('小区名.xlsx') for area in areas: print('正在爬取:', area) data = crawl_data(area) save_to_excel(data, area + '.xlsx') print('爬取完成!')
时间: 2024-04-26 09:20:52 浏览: 105
这段代码是一个简单的爬虫程序,用来爬取指定小区的二手房信息,并将数据保存到 Excel 文件中。程序首先通过读取 Excel 文件中的小区名字,依次对每个小区进行爬取。爬取时,程序将小区名字作为参数拼接到目标 URL 中,然后使用 requests 库发送 GET 请求获取 HTML 页面,再使用 BeautifulSoup 库解析 HTML 页面,提取出需要的信息,并将结果保存到一个列表中。最后,程序将列表中的数据保存到 Excel 文件中。
相关问题
从Excel表中依次读取列中的网页地址,并抽取这些网页的标题和文本,存储到TXT文件中,先写代码
### 回答1:
好的,这是一个使用 Python 和 Excel 库来完成上述任务的例子。首先,我们需要安装相关的库:
```
!pip install openpyxl requests bs4
```
然后,我们可以使用以下代码来完成上述任务:
```python
import openpyxl
import requests
from bs4 import BeautifulSoup
# 打开 Excel 文件
wb = openpyxl.load_workbook('urls.xlsx')
# 选择第一个工作表
sheet = wb['Sheet1']
# 遍历表中的每一行
for row in sheet.iter_rows(min_row=1, max_col=1):
# 获取单元格中的 URL
url = row[0].value
# 使用 requests 库发送 HTTP 请求
response = requests.get(url)
# 使用 BeautifulSoup 解析 HTML 响应
soup = BeautifulSoup(response.text, 'html.parser')
# 提取页面的标题和文本
title = soup.title.string
text = soup.get_text()
# 将标题和文本写入文件
with open('output.txt', 'a', encoding='utf-8') as f:
f.write(title + '\n')
f.write(text + '\n')
```
在这段代码中,我们使用了 openpyxl 库来打开 Excel 文件,然后使用 BeautifulSoup 库来解析 HTML 响应并提取页面的标题和文本。最后,我们使用 `with open` 语句将标题和文本写入文件。
请注意,这只是一个简单的例子,可能需要根据实际情况进行修改。例如,你可能需要捕获网络请求的异常,或者处理编码问题等等
### 回答2:
以下是使用Python编写的代码,实现从Excel表中依次读取列中的网页地址,并抽取这些网页的标题和文本,然后将其存储到TXT文件中。
```python
import xlrd
import requests
from bs4 import BeautifulSoup
# 打开Excel文件
workbook = xlrd.open_workbook('data.xls')
# 获取第一个工作表
worksheet = workbook.sheet_by_index(0)
# 存储网页标题和文本的列表
data = []
# 依次读取每个单元格中的网页地址
for row in range(worksheet.nrows):
url = worksheet.cell_value(row, 0)
# 请求网页内容
response = requests.get(url)
soup = BeautifulSoup(response.content, 'html.parser')
# 提取网页标题和文本
title = soup.title.string
text = soup.get_text()
# 存储到列表中
data.append({'title': title, 'text': text})
# 将数据存储到TXT文件中
with open('output.txt', 'w', encoding='utf-8') as file:
for item in data:
file.write('标题:' + item['title'] + '\n')
file.write('文本:' + item['text'] + '\n\n')
```
以上代码使用了xlrd库来操作Excel文件,requests库发送HTTP请求获取网页内容,BeautifulSoup库进行网页内容解析。通过循环遍历Excel表格的每个单元格,读取其中的网页地址,然后请求该网页内容,提取网页标题和文本,最后将标题和文本以指定的格式写入TXT文件中。
### 回答3:
import pandas as pd
import requests
from bs4 import BeautifulSoup
# 读取Excel表中的网页地址
df = pd.read_excel('Excel文件路径.xlsx', sheet_name='工作表名称')
urls = df['网页地址']
# 创建TXT文件
txt_file = open('结果文件路径.txt', 'w', encoding='utf-8')
# 循环读取网页地址并抽取标题和文本
for url in urls:
try:
# 发送请求获取网页内容
response = requests.get(url)
soup = BeautifulSoup(response.content, 'html.parser')
# 抽取标题
title = soup.title.text.strip()
# 抽取文本
text = soup.get_text().strip()
# 将标题和文本写入TXT文件
txt_file.write("标题:" + title + "\n")
txt_file.write("文本:" + text + "\n\n")
# 打印抽取结果
print("标题:", title)
print("文本:", text)
print()
except Exception as e:
print("发生错误:", e)
continue
# 关闭TXT文件
txt_file.close()
按照Excel表格中网址列表,依次打开网页并提取标题和文本并存储到TXT格式文件中,使用python代码
### 回答1:
您好,可以使用 Python 中的 requests 库和 BeautifulSoup 库来实现这个功能。
首先,使用 Python 读取 Excel 表格中的网址列表。可以使用第三方库如 openpyxl 或 pandas 读取 Excel 文件。
然后,对于每个网址,使用 requests 库发送 HTTP 请求并获取网页的 HTML 源代码。
接着,使用 BeautifulSoup 解析 HTML 源代码,提取网页的标题和文本。
最后,使用 Python 的文件 I/O 操作将标题和文本写入 TXT 格式文件中。
下面是一个示例代码,它实现了这个功能:
```python
import requests
from bs4 import BeautifulSoup
# 读取 Excel 表格中的网址列表
urls = [] # 网址列表
# 遍历每个网址
for url in urls:
# 发送 HTTP 请求并获取网页的 HTML 源代码
html = requests.get(url).text
# 使用 BeautifulSoup 解析 HTML 源代码
soup = BeautifulSoup(html, 'html.parser')
# 提取网页的标题
title = soup.title.string
# 提取网页的文本
text = soup.get_text()
# 将标题和文本写入 TXT 格式文件中
with open('data.txt', 'a') as f:
f.write(title + '\n')
f.write(text + '\n')
```
在上面的代码中,我们使用了 requests 库来发送 HTTP 请求并获取网页的 HTML 源代码,使用 BeautifulSoup 解析 HTML 源代码,然后使用 Python 的文件 I/O
### 回答2:
以下是用 Python 代码实现的解决方案:
```python
import requests
from bs4 import BeautifulSoup
# 读取Excel表格中的网址列表
urls = []
with open('urls.csv', 'r') as file:
for line in file:
urls.append(line.strip())
# 逐个打开网页并提取标题和文本
for url in urls:
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
# 提取标题
title = soup.title.text.strip()
# 提取文本
text = ''
for paragraph in soup.find_all('p'):
text += paragraph.text.strip() + '\n'
# 存储到TXT文件中
with open('output.txt', 'a') as file:
file.write(f'Title: {title}\n')
file.write(f'Text: {text}\n\n')
```
在上面的代码中,假设网址列表存储在名为 `urls.csv` 的 CSV 文件中,每个网址占一行。提取到的标题和文本将以 `Title:` 和 `Text:` 的格式存储在名为 `output.txt` 的 TXT 文件中。你可以根据实际情况调整文件名和路径。另外,代码使用了 `requests` 和 `BeautifulSoup` 库,如果没有安装,可以通过运行 `pip install requests` 和 `pip install beautifulsoup4` 进行安装。
### 回答3:
可以使用Python中的requests库和BeautifulSoup库来实现这个功能。以下是示例代码:
```python
import requests
from bs4 import BeautifulSoup
import xlrd
# 读取Excel表格
workbook = xlrd.open_workbook('url_list.xlsx')
sheet = workbook.sheet_by_index(0)
# 创建TXT文件
output_file = open('output.txt', 'w')
# 遍历Excel表格中的网址
for i in range(sheet.nrows):
url = sheet.cell_value(i, 0)
# 发送HTTP请求获取网页内容
response = requests.get(url)
page_content = response.text
# 使用BeautifulSoup解析网页内容
soup = BeautifulSoup(page_content, 'html.parser')
# 提取网页标题
title = soup.title.string
# 提取网页文本
text = soup.get_text()
# 将标题和文本写入TXT文件
output_file.write('标题:' + title + '\n')
output_file.write('文本:' + text + '\n')
output_file.write('------------------------------------\n')
# 关闭TXT文件
output_file.close()
```
以上代码假设Excel文件名为"url_list.xlsx",且Excel表格只有一张工作表,其中的网址在第一列中。代码会按照Excel表格中的网址列表依次打开并提取网页的标题和文本,并将结果保存到名为"output.txt"的TXT文件中。每个网址的标题和文本会之间以分割线进行分隔。
阅读全文