python学习之使用selenium爬取豆瓣图书信息

使用selenium爬取豆瓣图书信息

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.edge.options import Options

 


# 设定函数,获取所有图书信息
def all_bookonfo(driver, fp):
    url = "https://book.douban.com/tag/%E4%B8%AD%E5%9B%BD%E6%96%87%E5%AD%A6"
    driver.get(url)
    a_list = driver.find_elements(By.XPATH, "//ul[@class='subject-list']/li/div[2]")
    # @href
    for url in a_list:
        bookname = url.find_element(By.XPATH, "./h2/a").text
        info = url.find_element(By.XPATH, "./div[1]").text
        #将一行信息切分为不同模块
        writer = info.split("/")[0]
        publication = info.split("/")[1]
        year = info.split("/")[2]
        #去除原数据中的”元“
        price = info.split("/")[3].replace("元", " ")
        value = url.find_element(By.XPATH, "./div[2]/span[2]").text
        print(bookname, writer, publication, year, price, value)
        #写入文本中
        fp.write(bookname+","+writer+","+publication+","+year+","+price+","+value+"\n")




if __name__ == '__main__':
    
    #使得运行时不出现浏览器界面
    opt = Options()
    opt.add_argument("--headless")
    driver = webdriver.Edge(opt)
    # 爬取豆瓣图书的信息
    fp = open("./doubantushu.txt3", "w+", encoding="utf-8")

    # 调用获取所有图书信息的方法
    all_bookonfo(driver, fp)

    fp.close()
  • 10
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
好的,这是一个很常见的爬虫案例。下面是一个简单的 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 查找电影名称、导演和主演信息,并打印到控制台中。然后,它查找下一页链接,并单击它以导航到下一页。如果下一页链接不可点击,则说明已经到了最后一页,退出循环。最后,它关闭浏览器驱动。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值