Python爬虫-爬取豆瓣信息(selenium+xpath)

本文介绍如何使用Selenium模拟登录豆瓣网站并处理验证码,以及如何爬取豆瓣书籍信息,包括生成快照、手动输入验证码、自动提交登录、使用XPath解析页面获取书籍名称。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

======================

====================================

利用selenium模拟豆瓣登录:

 1 '''
 2 利用selenium模拟登录豆瓣
 3 需要输入验证码
 4 思路:
 5 1. 保存页面成快照
 6 2. 等待用户手动输入验证码
 7 3. 继续自动执行提交等动作
 8 
 9 '''
10 
11 from selenium import webdriver
12 from selenium.webdriver.common.keys import  Keys
13 import time
14 
15 
16 url = 'https://accounts.douban.com/login?alias=&redir=https%3A%2F%2Fwww.douban.com%2F&source=index_nav&error=1001'
17 driver = webdriver.Chrome()
18 driver.get(url)
19 
20 time.sleep(4)
21 
22 # 生成快照,用来查看验证码
23 driver.save_screenshot('douban_index.png')
24 
25 captcha = input("plz input youre code:")
26 
27 # 利用账户信息和验证码登录
28 driver.find_element_by_id("email").send_keys("1366798119@qq.com")
29 driver.find_element_by_id("password").send_keys("haha123456")
30 driver.find_element_by_id("captcha_field").send_keys(captcha)
31 
32 
33 driver.find_element_by_xpath("//input[@class='btn-submit']").click()
34 
35 time.sleep(5)
36 
37 driver.save_screenshot("logined.png")
38 
39 with open("douban_home.html", 'w', encoding='utf-8') as file:
40     file.write(driver.page_source)
41 
42 driver.quit()

============================================

利用selenium+xpath爬取豆瓣书籍信息

 1 '''
 2 https://book.douban.com/subject_search?search_text=python&cat=1001&start=%s0
 3 使用selenium爬去页面
 4 保存内容后用xpath进行分析
 5 '''
 6 
 7 from selenium import webdriver
 8 import time
 9 from lxml import etree
10 
11 
12 def get_web(url):
13     driver = webdriver.Chrome()
14     driver.get(url)
15 
16     print('waitting for .......')
17     time.sleep(20)
18     print('waitting done .......')
19 
20     driver.save_screenshot('douban_reader.png')
21 
22 #豆瓣中没有页面源码,需要先把页面源码download下来,driver.page_source
23     fn = 'douban_reader.html'
24     with open(fn, 'w', encoding='utf-8') as f:
25         f.write(driver.page_source)
26 
27     content_parse(fn)
28     driver.quit()
29 
30 def content_parse(fn):
31     html = ''
32 
33     with open(fn, 'r', encoding='utf-8') as f:
34         html = f.read()
35 
36 
37     # 生成xml树,用xpath解析
38     tree = etree.HTML(html)
39 
40     #查找book
41     books = tree.xpath('//div[@class="item-root"]')
42 
43     for book in books:
44         book_name = book.xpath(".//div[@class='title']/a")
45         print(book_name[0].text)
46 
47 
48 if __name__ == '__main__':
49     url = 'https://book.douban.com/subject_search?search_text=python&cat=1001&start=%s0'
50     get_web(url)

 

转载于:https://www.cnblogs.com/xuxaut-558/p/10088415.html

好的,这是一个很常见的爬虫案例。下面是一个简单的 Python 代码示例,用于使用 Selenium 爬取豆瓣电影 Top250: ```python import time from selenium import webdriver # 创建 Chrome 浏览器驱动 driver = webdriver.Chrome() # 访问豆瓣电影 Top250 页面 driver.get('https://movie.douban.com/top250') # 循环爬取所有页面 while True: # 获取当前页面的所有电影信息 movies = driver.find_elements_by_xpath('//div[@class="info"]') # 循环打印每个电影的名称、导演和主演信息 for movie in movies: name = movie.find_element_by_xpath('.//a/span[@class="title"]').text director_and_actors = movie.find_element_by_xpath('.//div[@class="bd"]/p[1]').text print(name, director_and_actors) # 查找下一页的链接 next_link = driver.find_element_by_xpath('//span[@class="next"]/a') # 如果下一页链接不可点击,则说明已经到了最后一页,退出循环 if 'disabled' in next_link.get_attribute('class'): break # 点击下一页链接 next_link.click() # 等待一段时间,让页面加载完成 time.sleep(2) # 关闭浏览器驱动 driver.quit() ``` 这个代码片段使用 Chrome 浏览器驱动访问豆瓣电影 Top250 页面,并循环爬取每个页面上的电影信息。在每个页面上,它使用 XPath 查找电影名称、导演和主演信息,并打印到控制台中。然后,它查找下一页链接,并单击它以导航到下一页。如果下一页链接不可点击,则说明已经到了最后一页,退出循环。最后,它关闭浏览器驱动。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值