爬取拉勾网职位信息并存为json文件

本文介绍了一个使用Python爬取拉勾网Python职位信息的示例,包括区域、薪资范围、工作经验及学历要求等数据,并展示了如何将爬取的数据保存为JSON文件。
from bs4 import BeautifulSoup
import requests
import re
import pymongo
import json

client=pymongo.MongoClient('localhost',27017)
laGou=client['laGou']
sheetLaGou=laGou['sheetLagou']

url = 'https://www.lagou.com/zhaopin/Python/?labelWords=label'

headers={
    'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36',
    'Cookie':'JSESSIONID=ABAAABAAAGFABEF6BBD467BA5628B1ED4B4CED513FDC3A3; user_trace_token=20180822154700-04d36825-377a-47de-b308-a072d89d9d52; _ga=GA1.2.1422200195.1534924022; LGSID=20180822154701-8dcf844b-a5df-11e8-9d32-525400f775ce; PRE_UTM=; PRE_HOST=; PRE_SITE=; PRE_LAND=https%3A%2F%2Fwww.lagou.com%2Fzhaopin%2FPython%2F%3FlabelWords%3Dlabel; LGUID=20180822154701-8dcf8739-a5df-11e8-9d32-525400f775ce; Hm_lvt_4233e74dff0ae5bd0a3d81c6ccf756e6=1534924022; _gid=GA1.2.571422913.1534924022; X_HTTP_TOKEN=99f9237c908140b8bf95703783f315ee; LG_LOGIN_USER_ID=d5d19028cbc1bc8486708afb288bed37bf822e1f54f85efa; _putrc=39E114755E2348A0; login=true; unick=%E5%BA%84%E5%A9%B7%E5%A9%B7; showExpriedIndex=1; showExpriedCompanyHome=1; showExpriedMyPublish=1; hasDeliver=205; gate_login_token=a526a75444357763c74a5a2ea56a671444f5f0d02eb46709; index_location_city=%E5%8C%97%E4%BA%AC; TG-TRACK-CODE=search_code; SEARCH_ID=86f5a937ee734407b97c705fcfb4aee8; LGRID=20180822160935-b4e6c850-a5e2-11e8-9d33-525400f775ce; Hm_lpvt_4233e74dff0ae5bd0a3d81c6ccf756e6=1534925376'
}
wb_data=requests.get(url,headers=headers)
soup=BeautifulSoup(wb_data.text,'lxml')

areas=soup.select('span.add em')
salarys=soup.select('span.money')
expAndDegrees=soup.select('div.p_bot div.li_b_l')
w1='经验'
w2='/'
w3='  '
fileObject = open('data.json', 'w')
for area,salary,expAndDegree in zip(areas,salarys,expAndDegrees):
    expe = (re.compile(w1 + '(.*?)' + w2, re.S)).findall(expAndDegree.get_text())[0].strip()
    degree = (re.compile(w2 + '(.*?)' + w3, re.S)).findall(expAndDegree.get_text())[0].strip()
    data = {
        'area':area.get_text(),
        'salary':salary.get_text(),
        'expe' :expe,
        'degree' : degree
    }
    print(data)
    # sheetLaGou.insert_one(data)
    jsonData = json.dumps(data)

    fileObject.write(jsonData)

fileObject.close()

有点经验

1,要注意如果是动态加载的网页,注意利用header, 不加的话爬出来的是空列表

2..代码中有部分是要向数据库mongoDb中写数据,根据情况进行注释

在PyCharm中爬取微博用户数据将其保存到CSV文件,通常需要几个步骤: 1. **安装必要的库**: 首先,你需要安装`selenium`、`webdriver_manager`(用于管理浏览器驱动)、`beautifulsoup4`(用于解析HTML)以及`pandas`(处理数据保存到CSV)。可以使用pip命令安装: ``` pip install selenium webdriver_manager beautifulsoup4 pandas ``` 2. **下载配置浏览器驱动**: `selenium`需要浏览器驱动才能模拟用户行为。例如,对于Chrome,你可以从这里下载:https://sites.google.com/a/chromium.org/chromedriver/downloads。然后根据操作系统和版本选择合适的驱动。 3. **编写Python脚本**: 下面是一个简单的示例,展示了如何使用Selenium和BeautifulSoup来获取用户信息,这里假设使用的是Twitter而不是微博,因为微博有反爬机制且API受限,直接页抓取比较复杂。 ```python import os from selenium import webdriver from selenium.webdriver.chrome.service import Service as ChromeService from webdriver_manager.chrome import ChromeDriverManager from bs4 import BeautifulSoup import pandas as pd # 创建一个Chrome服务实例 service = ChromeService(ChromeDriverManager().install()) # 启动无头浏览器 options = webdriver.ChromeOptions() options.add_argument('--headless') driver = webdriver.Chrome(service=service, options=options) def get_user_data(url): driver.get(url) soup = BeautifulSoup(driver.page_source, 'html.parser') # 提取所需的数据,这将取决于页面结构 user_info = {} # 这里只是一个占位符,实际提取时需分析HTML ... return user_info url_pattern = "https://weibo.com/{username}" users_to_crawl = ['username1', 'username2', ...] # 想要爬取的用户名列表 data_list = [] for username in users_to_crawl: data = get_user_data(url_pattern.format(username=username)) data_list.append(data) # 将数据转换为DataFrame保存到CSV df = pd.DataFrame(data_list) df.to_csv('微博用户数据.csv', index=False) driver.quit() #
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值