爬虫存储数据
请问这个代码保存成csv文件,想要第一行显示年龄,身高,学历,住址该怎么修改import requests
import pandas as pd
import re
from lxml import html
etree = html.etree
#主页
url = 'https://search.baihe.com/search/noLogin?&jsonCallBack=jQuery183026832692080622156_1683878942706'
info_url = 'https://profile1.baihe.com/?oppID='
header = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36"
}
params = {
"jsonCallBack": "jQuery183026832692080622156_1683878942706"
}
age_list = []
height_list = []
degree_list = []
city_list = []
response = requests.post(url=url,headers=header,params=params).text
ex = '"userID":(\d+)'
matches = re.findall(ex,response,re.S)
for i in matches:
ifo_url = info_url + i
print(ifo_url)
page = requests.get(url = ifo_url,headers=header).text
tree = etree.HTML(page)
# age = tree.xpath('//*[@id="BAIHE"]/div/div//p/text()')
# height = tree.xpath('//*[@id="BAIHE"]/div/div//p/text()')
# degree = tree.xpath('//*[@id="BAIHE"]/div/div//p/text()')
# city = tree.xpath('//*[@id="BAIHE"]/div/div//p/text()')
#print(age,height,degree,city)
age_list.append(tree.xpath('//*[@id="BAIHE"]/div/div//p/text()'))
height_list.append(tree.xpath('//*[@id="BAIHE"]/div/div//p/text()'))
degree_list.append(tree.xpath('//*[@id="BAIHE"]/div/div//p/text()'))
city_list.append(tree.xpath('//*[@id="BAIHE"]/div/div//p/text()'))
print('爬取成功')
df = pd.DataFrame()
df['年龄'] = age_list
df['身高'] = height_list
df['学历'] = degree_list
df['城市'] = city_list
df.to_csv('baihe.csv',mode='a+',header=None,index=None,encoding='gbk')
就是这个图片里面的内容变成下一个图片的内容
可以将最后一段代码修改为以下内容:
df = pd.DataFrame({'年龄': age_list, '身高': height_list, '学历': degree_list, '住址': city_list})
df.to_csv('baihe.csv', index=None, encoding='gbk')
这样就可以将列名修改为年龄、身高、学历、住址并保存为csv文件了。 将df.to_csv(..)中的header参数设置为想要的列名即可,例如:
df.to_csv('baihe.csv', mode='a+', header=['年龄', '身高', '学历', '城市'], index=None, encoding='gbk')
这样就会把年龄、身高、学历、城市作为第一行写入到csv文件中了。 isdkz 发表于 2023-5-13 11:04
可以将最后一段代码修改为以下内容:
df = pd.DataFrame({'年龄': age_list, '身高': height_list, '学 ...
感谢感谢 陶远航 发表于 2023-5-13 11:05
将df.to_csv(..)中的header参数设置为想要的列名即可,例如:
这样就会把年龄、身高、学历、城市作为第 ...
感谢感谢 陶远航 发表于 2023-5-13 11:05
将df.to_csv(..)中的header参数设置为想要的列名即可,例如:
这样就会把年龄、身高、学历、城市作为第 ...
请问index那个参数是干什么的呢
哈岁NB 发表于 2023-5-13 11:08
请问index那个参数是干什么的呢
index参数用于确定写入CSV文件时是否将DataFrame对象的行索引写入到文件中。如果index参数的值为True,则将行索引写入文件中,如果值为False,则不会将行索引写入文件中。另外,如果在调用to_csv()方法时指定了一个字符串作为index_label参数值,则该字符串将被用作行索引列的名称。例如:
# 将行索引写入到CSV文件中,并设置行索引列名称为'Row_Index'
df.to_csv('filename.csv', index=True, index_label='Row_Index')
# 不将行索引写入到CSV文件中
df.to_csv('filename.csv', index=False)
陶远航 发表于 2023-5-13 11:10
index参数用于确定写入CSV文件时是否将DataFrame对象的行索引写入到文件中。如果index参数的值为True,则 ...
好的,感谢感谢 每天打卡学习中 陶远航 发表于 2023-5-13 11:05
将df.to_csv(..)中的header参数设置为想要的列名即可,例如:
这样就会把年龄、身高、学历、城市作为第 ...
卧槽,你差2个就追上我了,日排行超过了isdkz,{:5_106:} sfqxx 发表于 2023-5-13 13:59
卧槽,你差2个就追上我了,日排行超过了isdkz,
{:5_109:} 陶远航 发表于 2023-5-13 14:00
{:5_99:} sfqxx 发表于 2023-5-13 14:00
加油呀 陶远航 发表于 2023-5-13 14:00
加油呀
我没有爬虫,因为不会VPN 陶远航 发表于 2023-5-13 14:00
加油呀
我不敢用爬虫,因为不会用翻墙
或者VPN sfqxx 发表于 2023-5-13 14:02
我不敢用爬虫,因为不会用翻墙
或者VPN
不用翻
墙
页:
[1]