Python爬虫基本知识攻略
什么是爬虫
简单来说,爬虫就是一种自动提取网页信息的程序。通常情况下,我们需要用到网页信息时,都得通过手动点击、查找等方式去获取,这样不仅费时费力,而且准确度也不高。然而,利用爬虫技术,就可以自动地获取所需的网页信息,提高效率,节省时间。
爬虫的工作流程
- 发送请求:在 Python 中,通常使用
requests
库向目标网站发送请求,获取网页代码; - 解析页面:使用
BeautifulSoup
、xpath
等工具解析获取的网页代码,提取出需要的信息; - 存储数据:将提取出来的信息存储到本地文件或数据库中。
爬虫的基本组成
- 请求方式(get/post):请求网页时使用的方式,一般使用
get
请求; - 请求头:在请求时带上一些信息(如 User-Agent、Referer 等)以便网站确认请求来源;
- 请求参数:发送请求时需要带上的一些参数,比如查询关键字、页码等;
- 响应状态码:表示请求是否成功的状态码;
- 响应内容:返回的网页信息;
- 数据解析:使用
BeautifulSoup
、xpath
等工具提取需要的数据。
示例一:爬取豆瓣电影 Top250 的电影名和评分
import requests
from bs4 import BeautifulSoup
url = 'https://movie.douban.com/top250'
headers = {
'User-Agent':
'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'}
response = requests.get(url, headers=headers)
soup = BeautifulSoup(response.text, 'html.parser')
movies = soup.find_all('div', class_='hd')
for movie in movies:
title = movie.a.span.text.strip()
star = movie.parent.find('span', class_='rating_num').text.strip()
print(title, star)
以上代码使用 requests
向豆瓣电影 Top250 发送请求,获取页面信息。随后使用 BeautifulSoup
解析出电影名和评分,并输出结果。
示例二:爬取京东电脑商品信息
import requests
from bs4 import BeautifulSoup
url = 'https://search.jd.com/Search?keyword=%E7%94%B5%E8%84%91&enc=utf-8&qrst=1&rt=1&stop=1&vt=2&wq=%E7%94%B5%E8%84%91&cid2=652&cid3=655&s=1&click=0'
headers = {
'User-Agent':
'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'
}
response = requests.get(url, headers=headers)
soup = BeautifulSoup(response.text, 'lxml')
names = soup.select('#J_goodsList .p-name em') # 商品名称
prices = soup.select('#J_goodsList .p-price i') # 商品价格
for name, price in zip(names, prices):
print(name.text, price.text)
以上代码使用 requests
向京东搜索页面发送请求,并使用 BeautifulSoup
解析出商品名称和价格,并输出结果。
总结
本文简单介绍了爬虫的概念、工作流程、基本组成以及两个代码示例。不过需要注意的是,爬虫技术虽然强大,但是需要遵守网络法律法规,谨慎使用,避免侵犯他人的利益。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python爬虫基本知识 - Python技术站