跳转至

使用 selenium 爬取豆瓣小组讨论信息

使用 selenium 模拟浏览器访问网页,解析并提取需要的信息,实现网络爬虫。

image-20230115235227306

使用selenium模拟浏览器,爬取豆瓣复旦校友上海租房小组的帖子,网址在 这里

导入必要的包

Python
from selenium import webdriver
from bs4 import BeautifulSoup
import pandas as pd

设置驱动、请求头和需要访问的 URL

Python
driver = webdriver.Chrome("D:\Program\chromedriver.exe")
# 初始化选项
options = webdriver.ChromeOptions()
# 设置自定义请求头
options.add_argument(
    'user-agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.64 Safari/537.36 Edg/101.0.1210.53"'
)
# 设置 URL
url = "https://www.douban.com/group/515560/discussion"
driver.get(url)

用 BeautifulSoup 解析数据

Python
# 用 BeautifulSoup 解析数据
content = driver.page_source.encode("utf-8")
soup = BeautifulSoup(content, "lxml")
# 找到所有帖子的标题
title_content = soup.find_all(class_="title")
time_content = soup.find_all(class_="time")

提取出需要的数据

Python
# 只保存标题文字、超链接和时间
title_list = []
href_list = []
time_list = []
for title, time in zip(title_content[:-1], time_content):
    title_list.append(title.a["title"].strip())
    href_list.append(title.a["href"].strip())
    time_list.append(time.text)

将数据导出到本地 csv 文件

Python
# 将数据导出到本地 csv 文件
df = pd.DataFrame(
    list(zip(time_list, title_list, href_list)), columns=["最后回应时间", "标题", "网址"]
)
df.to_csv("豆瓣小组爬虫。csv", index=False, encoding="utf-8-sig")

展示爬取到的具体内容

Python
df
最后回应时间 标题 网址
0 11-25 11:15 复旦大学附近全配双南二室一厅 https://www.douban.com/group/topic/279122048/
1 11-24 12:36 合租转租仅女生 2100/月押一付一 近 B 站尚浦 https://www.douban.com/group/topic/279076030/
2 11-24 09:46 美岸栖庭单间实体房出租 https://www.douban.com/group/topic/279068051/
3 11-22 16:14 同济大学附近两居室次卧转租,限女生 https://www.douban.com/group/topic/278976916/
4 11-21 09:51 国顺路 310 弄南北两室,装修干净清爽,只要 5000,看房有钥匙联系 13588488922 https://www.douban.com/group/topic/278905908/
5 11-18 20:36 复旦,地铁 10,18 号线国权路站附近全配三室户出租 https://www.douban.com/group/topic/278783611/
6 11-18 09:35 转租 - 个人转租 - 浦东大道 https://www.douban.com/group/topic/278748900/
7 11-18 09:26 出租国顺路 375 弄 2 楼双南,两室一厅,6300/月精装修全配,看房有钥匙看房联系 13588... https://www.douban.com/group/topic/278748540/
8 11-16 10:42 东方文苑小区出租,离复旦大学邯郸校区脚程不到 10 分钟 https://www.douban.com/group/topic/278643617/
9 11-14 19:12 转租国权路 1200/月女生无中介费 https://www.douban.com/group/topic/278560381/
10 11-09 21:18 复旦,同济,五角场,10/18 号线,寻考研 or 专硕在读 or 实习女室友(无中介费)~ https://www.douban.com/group/topic/278274798/
11 11-09 15:51 五角场好房出租 https://www.douban.com/group/topic/278256396/
12 11-05 16:43 五角场!!!十号线!!18 号线!!财经大学站!!!精装公寓 loft 层高 5 米只需要 3100 https://www.douban.com/group/topic/278026628/

关闭浏览器

Python
driver.close()

评论