库与语法速查
本课用得最多的六个工具,按“采集 → 解析 → 框架 → 清洗 → 日志”的顺序排列。
requests 常用参数
| 写法 | 作用 |
|---|
requests.get(url, params=, headers=, timeout=) | GET 请求,参数自动编码 |
r.status_code / r.text / r.content | 状态码 / 文本 / 字节 |
r.encoding = "utf-8" | 指定解码方式,解决乱码 |
requests.post(url, data=) | 表单提交 |
requests.Session() | 保持 Cookie 的会话 |
r.json() | 响应是 JSON 时直接转字典 |
XPath 语法
| 写法 | 作用 |
|---|
//div | 任意层级的 div |
//div[@class="news"] | 按属性定位 |
//a/@href | 取属性 |
//a/text() | 取文本 |
//li[1] | 第一个 li(下标从 1 开始) |
//div//span | div 下任意层的 span |
string(//h1) | 取首个匹配的文本 |
BeautifulSoup
| 写法 | 作用 |
|---|
BeautifulSoup(html, "html.parser") | 解析 |
soup.select("div.news a") | CSS 选择器,返回列表 |
soup.select_one(...) | 只取第一个 |
tag.get_text(strip=True) | 取文本并去空白 |
tag["href"] | 取属性 |
soup.find_all("a", class_="link") | 按标签+类名查 |
Scrapy 常用命令
| 写法 | 作用 |
|---|
scrapy startproject 名 | 创建项目 |
scrapy genspider 名 域名 | 生成爬虫 |
scrapy crawl 名 -O out.json | 运行并覆盖输出 |
scrapy shell url | 交互式调试 |
scrapy list | 列出爬虫 |
pandas 常用操作
| 写法 | 作用 |
|---|
pd.read_csv(p, encoding=) | 读 CSV |
df.head() / df.shape / df.info() | 查看数据 |
df.isnull().sum() | 空值统计 |
df.dropna() / drop_duplicates() | 去空 / 去重 |
df.groupby("列").size() | 分组计数 |
df.sort_values("列", ascending=False) | 排序 |
df.to_csv(p, index=False) | 写出 CSV |
pd.to_datetime(列) | 转日期类型 |
Flume / Kafka
| 写法 | 作用 |
|---|
flume-ng agent -n a1 -f conf | 启动 Flume Agent |
kafka-topics.sh --create --topic t | 建 topic |
kafka-console-producer.sh --topic t | 控制台生产消息 |
kafka-console-consumer.sh --topic t --from-beginning | 消费消息 |