大家好,我是python222小锋老师。前段时间卷了一套 Python3零基础7天入门实战 以及1小时掌握Python操作Mysql数据库之pymysql模块技术
近日锋哥又卷了一波课程,python爬虫【基础篇】 涵盖 requests、beautifulsoup、selenium,文字版+视频版。1天掌握。
视频版教程:一天掌握python爬虫【基础篇】 涵盖 requests、beautifulsoup、selenium
文字版目录+内容:
第一章:网络爬虫介绍
第二章:requests网络请求模块
2.1 requests模块简介及安装
2.2 requests之get请求实例-百度搜索
2.3 requests之post请求实例-百度翻译
2.4 requests之代理
2.5 requests之Cookie
2.6 requests之Session
第三章:BeautifulSoup网页解析模块
3.1 beautifulsoup模块简介及安装
3.2 beautifulsoup解析本地文件之基础语法
3.3 beautifulsoup网络抓取和解析cnblog首页帖子数据
第四章:selenium动态网页解析模块
4.1 selenium模块简介
4.2 selenium驱动下载,模块安装以及基本使用
4.3 selenium元素的定位
4.4 selenium获取元素信息
4.5 selenium交互
4.6 selenium无界面headless
附上一些优质代码片段:
import requests
import json
url = "https://fanyi.baidu.com/sug"
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'
}
data = {
'kw': 'white'
}
r = requests.post(url=url, data=data, headers=headers)
print(r.text)
# json.loads方法自动把unicode编码转成中文
result = json.loads(r.text)
print(result)
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
import time
chrome_options = Options()
chrome_options.add_argument('--headless')
chrome_options.add_argument('--disable‐gpu')
# 自己的Chrome浏览器文件路径
path = r'C:\Users\java1234\AppData\Local\Google\Chrome\Application\chrome.exe'
chrome_options.binary_location = path
browser = webdriver.Chrome(options=chrome_options)
url = "https://www.baidu.com"
browser.get(url)
time.sleep(2)
browser.get_screenshot_as_file("百度首页.png")
# 获取文本框的对象
input = browser.find_element(By.ID, "kw")
# 在文本框中输入python
input.send_keys('python')
time.sleep(2)
# 获取百度一下的按钮
button = browser.find_element(By.ID, 'su')
# 点击按钮
button.click()
time.sleep(2)
# 滑到底部
# js_bottom = 'window.scrollTo(0,document.body.scrollHeight)'
js_bottom = 'document.documentElement.scrollTop=10000'
js_top = 'document.documentElement.scrollTop=0'
browser.execute_script(js_bottom)
time.sleep(2)
browser.execute_script(js_top)
time.sleep(2)
browser.get_screenshot_as_file("第一页截图.png")
# 获取下一页的按钮
next_button = browser.find_element(By.XPATH, '//a[@class="n"]')
# 点击下一页
next_button.click()
time.sleep(2)
browser.execute_script(js_bottom)
browser.get_screenshot_as_file("下一页截图.png")
time.sleep(2)
# 返回到前一个历史记录 相当于 浏览器的返回按钮
browser.back()
time.sleep(2)
# 返回到后一个历史记录 相当于 浏览器的前进按钮
browser.forward()
browser.execute_script(js_bottom)
time.sleep(2)
# 退出
browser.quit()