使用 selenium 爬取豆瓣小组讨论信息¶
使用 selenium 模拟浏览器访问网页,解析并提取需要的信息,实现网络爬虫。
使用selenium
模拟浏览器,爬取豆瓣复旦校友上海租房小组的帖子,网址在 这里。
导入必要的包¶
设置驱动、请求头和需要访问的 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")
展示爬取到的具体内容¶
最后回应时间 | 标题 | 网址 | |
---|---|---|---|
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/ |