1.安装 bs4
pip install bs4
2.安装Selenium
pip install Selenium
3.安装浏览器驱动
Chrome驱动文件下载:Chrome
Firefox驱动文件下载:Firefox
下载后将其中的执行程序放到python的script文件夹中,就可以了。
爬取动态网页内容:
4.使用Selenium
from selenium import webdriver
from time import sleep
#executable_path 不能少,后边就是上面安装的驱动的位置
driver =
webdriver.Firefox(executable_path=r'C:\Users\Administrator\python39\Scripts\geckodriver.exe')
driver.get("http://www.santostang.com/2018/07/04/hello-world/")
5.爬取第一个评论
from selenium import webdriver
from time import sleep
driver = webdriver.Firefox(executable_path=r'C:\Users\Administrator\python39\Scripts\geckodriver.exe')
driver.get("http://www.santostang.com/2018/07/04/hello-world/")
driver.switch_to.frame(driver.find_element_by_css_selector("iframe[title='livere-comment']"))
# 使用CSS选择器查找元素,找到class为'reply-content'的div元素
comment = driver.find_element_by_css_selector('div.reply-content')
# 通过元素的tag去寻找‘p’元素
content = comment.find_element_by_tag_name('p')
print(content.text)
这是因为源代码需要解析成一个iframe,则需要添加如下一行代码。
,driver.switch_to.frame(driver.find_element_by_css_selector("iframe[title='livere']"))
==title=‘livere’==是页面中的,所有不同页面可能不同。
6.爬取一页中的所有评论,即多个元素
在element后面加上s
comments = driver.find_elements_by_css_selector('div.reply-content')
for eachcomment in comments:
content = eachcomment.find_element_by_tag_name('p')
print(content.text)
7.另一种方法
from selenium import webdriver
from selenium.webdriver.firefox.firefox_binary import FirefoxBinary
import time
# 通过selenium启动博客网站
caps = webdriver.DesiredCapabilities().FIREFOX
caps["marionette"] = True #不能是False
binary = FirefoxBinary(r'C:\Program Files\Mozilla Firefox\firefox.exe')
driver = webdriver.Firefox(firefox_binary=binary, capabilities=caps)
driver.get("http://www.santostang.com/2018/07/04/hello-world/")
driver.switch_to.frame(driver.find_element_by_css_selector("iframe[title='livere-comment']"))
comments = driver.find_elements_by_css_selector('div.reply-content')
for eachcomment in comments:
content = eachcomment.find_element_by_tag_name('p')
print(content.text)
8.查看网页中的内容
1.右键点击检查
(1)左上角的箭头,点击一次后可以去点击网页上你想要查看的部分,就会移动到该部分的代码。
(2)在network中的ALL部分,一般在第一个是网页的配置,在header中可以找的网页的 agent 和 host 这两个重要信息。