#主函数
import requests
from bs4 import BeautifulSoup
import pandas as pd
import openpyxl
#定义存储变量
mingzi=[]
nianling=[]
diqu=[]
hunyin=[]
shengao=[]
jieshao=[]
#获取网页源代码的函数
for i in range(75):
url='http://www.hongniang.com/index/search?sort=0&wh=0&sex=0&starage=1,2,3,4&province=%E6%B5%99%E6%B1%9F&city=0&marriage=0&edu=0&income=0&height=0&pro=0&house=0&child=0&xz=0&sx=0&mz=0&hometownprovince=0'+str(i)
request=requests.get(url)
html=request.text
#解析源代码,提取信息
soup=BeautifulSoup(html,'html.parser')
for info in soup.find_all('li',class_='pin'):
mingzi.append(info.find_all('div',class_='name')[0].text.replace('\n','')[0:])
nianling.append(info.find_all('span')[1].text)
diqu.append(info.find_all('span')[2].text)
hunyin.append(info.find_all('span')[3].text)
shengao.append(info.find_all('span')[4].text)
jieshao.append(info.find_all('div',class_='db')[0].text.replace('\t','').replace('\r','').replace('\n','').replace(' ','')[5:])
pd.DataFrame({'网名':mingzi,'年龄':nianling,'地区':diqu,'婚姻状况':hunyin,'身高':shengao,'介绍':jieshao})
data=pd.DataFrame({'网名':mingzi,'年龄':nianling,'地区':diqu,'婚姻状况':hunyin,'身高':shengao,'介绍':jieshao})
df = pd.DataFrame(data)
data.to_csv('爬虫数据.csv',encoding='utf-8',index=False)
求问为啥导出的csv文件,网名那一列为什么数据重复
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- CSDN专家-HGJ 2021-06-21 18:44关注
mingzi.append(info.find_all('div',class_='name')[0].text.replace('\n','')[0:])这行你得到的数据是列表嵌套,与其他的不一样,所以在dataframe会有重复。修改这一行获取全是字符串的列表
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥20 matlab计算中误差
- ¥15 对于相关问题的求解与代码
- ¥15 ubuntu子系统密码忘记
- ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
- ¥15 保护模式-系统加载-段寄存器
- ¥15 电脑桌面设定一个区域禁止鼠标操作
- ¥15 求NPF226060磁芯的详细资料
- ¥15 使用R语言marginaleffects包进行边际效应图绘制
- ¥20 usb设备兼容性问题
- ¥15 错误(10048): “调用exui内部功能”库命令的参数“参数4”不能接受空数据。怎么解决啊