【实用】Python爬虫入门教程,附带大量爬虫实战案例! 近年来,Python越来越受到开发者的青睐。Python的优秀语法和强大生态系统,尤其在数据处理和Web开发方面,已经成为最常用的编程语言之一。而Python爬虫更是Python开发者不可缺少的技能之一。本文将为你介绍Python爬虫的入门教程和大量实战案例。 一、爬虫基础 在了解Python爬虫之前,需要掌握基础知识。我们知道,HTTP协议是Web开发的基石,而我们爬虫需要使用的就是HTTP协议。Python中常用的HTTP库是requests,使用方法如下: ```python import requests response = requests.get(url) print(response.text) ``` 这里的url是目标网站的链接,我们使用requests.get方法发起HTTP请求,并获得响应。常用的响应内容有text,content,json等。一般情况下,我们使用text获取文本内容,使用content获取二进制内容,使用json获取JSON格式的内容。 二、BeautifulSoup 在获得HTML页面之后,我们需要解析页面内容。Python中,最流行的解析库是BeautifulSoup。使用方法如下: ```python from bs4 import BeautifulSoup soup = BeautifulSoup(html_text, 'html.parser') divs = soup.find_all('div', {'class': 'demo'}) ``` 这里的html_text是我们从网页中获得的HTML文本,soup对象可以对其进行解析,find_all方法可以根据标签名和属性值获得目标元素。在实际爬虫过程中,我们经常使用find和find_all方法获取所需内容。 三、Selenium 在一些JS渲染的页面中,requests和BeautifulSoup已经无法满足我们的需求,这时就需要使用Selenium模拟浏览器行为。Selenium是一种自动化测试工具,可以通过编程实现浏览器的自动化操作。 ```python from selenium import webdriver driver = webdriver.Chrome() driver.get(url) ``` 这里的webdriver.Chrome()表示我们需要使用Chrome浏览器,使用get方法打开目标网页。通过Selenium模拟浏览器行为,我们可以获得完整的HTML页面和JS渲染的内容。 四、实战案例 1.爬取豆瓣电影排行榜 豆瓣电影是一个非常优秀的电影评价网站,我们可以通过爬虫获得电影的排行榜,并进行一些有趣的数据分析。具体代码如下: ```python import requests from bs4 import BeautifulSoup url = 'https://movie.douban.com/chart' 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') items = soup.find_all('div', {'class': 'pl2'}) for item in items: title = item.find('a').text.strip() rating = item.find('span', {'class': 'rating_nums'}).text.strip() print(title, rating) ``` 2.爬取新浪微博热搜榜 新浪微博是一个非常流行的社交网络平台,我们可以通过爬虫获得微博热搜榜的内容,并进行分析。具体代码如下: ```python import requests from bs4 import BeautifulSoup url = 'https://s.weibo.com/top/summary?cate=realtimehot' 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') items = soup.find_all('td', {'class': 'td-02'}) for item in items: title = item.find('a').text.strip() rank = item.find('span').text.strip() print(rank, title) ``` 3.爬取淘宝商品信息 淘宝是一个非常流行的电子商务平台,我们可以通过爬虫获得商品的信息,并进行数据分析。这里我们需要使用Selenium模拟浏览器行为,具体代码如下: ```python from selenium import webdriver from selenium.webdriver.common.keys import Keys from bs4 import BeautifulSoup driver = webdriver.Chrome() driver.get('https://www.taobao.com/') search_input = driver.find_element_by_name('q') search_input.send_keys('Python书籍') search_input.send_keys(Keys.RETURN) soup = BeautifulSoup(driver.page_source, 'html.parser') items = soup.find_all('div', {'class': 'item J_MouserOnverReq '}) for item in items: title = item.find('div', {'class': 'title'}).text.strip() price = item.find('strong').text.strip() print(title, price) driver.close() ``` 以上是Python爬虫的入门教程和大量实战案例。Python爬虫的应用范围非常广泛,掌握Python爬虫技能,可以为各种数据分析和Web开发工作提供帮助。