drissionpage 爬取拉勾网
时间: 2025-01-13 19:57:34 浏览: 69
### 使用 DrissionPage 实现拉勾网数据抓取
DrissionPage 是一款基于 Selenium 和 Pyppeteer 的 Python 爬虫框架,能够高效地处理动态网页的内容获取。对于像拉勾网这样的现代 JavaScript 加载网站来说非常适用。
为了实现对拉勾网的有效抓取,可以按照如下方法编写代码:
#### 安装依赖包
首先需要安装必要的库文件:
```bash
pip install drission-page
```
#### 初始化浏览器实例并登录
由于拉勾网通常会检测自动化工具访问行为,建议先通过手动方式完成一次登录操作,并保存 cookies 以便后续自动加载使用[^1]。
```python
from drission_page import ChromiumPage, CookiesJar
cookies_jar = CookiesJar('lagou_cookies.json')
with ChromiumPage() as page:
url = 'https://www.lagou.com/'
page.get(url)
# 手动执行登录流程...
input("请按回车键继续...")
cookies_jar.save(page.cookies())
```
#### 抓取职位列表页面
利用之前存储下来的 cookie 进行无痕模式下的请求发送,从而绕过反爬机制。
```python
def fetch_job_list(keyword='Python'):
with ChromiumPage(headless=True) as page:
cookies_jar.load_into(page)
search_url = f'https://www.lagou.com/jobs/list_{keyword}?labelWords=&fromSearch=true&suginput='
page.get(search_url)
job_items = []
while True:
items = page.eles('.item_con_list li')
for item in items:
title = item.ele('./h3').text
company = item.ele('.company_name a').text
job_info = {
"title": title,
"company": company
}
job_items.append(job_info)
next_btn = page(ele='.pager_next', timeout=0.5)
if not next_btn or 'disabled' in next_btn.attrs['class']:
break
next_btn.click()
page.wait(2)
return job_items
```
此段代码实现了针对特定关键词的工作岗位搜索结果页的遍历读取功能,同时支持多页翻阅直至结束标志出现为止[^2]。
阅读全文
相关推荐


















