佛山做外贸网站渠道,什么叫前端什么叫后端,动力网页设计制作公司,甜品制作网站本文介绍了7个Python爬虫小案例#xff0c;包括爬取豆瓣电影Top250、猫眼电影Top100、全国高校名单、中国天气网、当当网图书、糗事百科段子和新浪微博信息#xff0c;帮助读者理解并实践Python爬虫基础知识。 包含编程资料、学习路线图、源代码、软件安装包等#xff01;【…本文介绍了7个Python爬虫小案例包括爬取豆瓣电影Top250、猫眼电影Top100、全国高校名单、中国天气网、当当网图书、糗事百科段子和新浪微博信息帮助读者理解并实践Python爬虫基础知识。 包含编程资料、学习路线图、源代码、软件安装包等【[点击这里]】 在文章开始之前先给大家简单介绍一下python爬虫
一、什么是爬虫
1.简单介绍爬虫
爬虫的全称为网络爬虫简称爬虫别名有网络机器人网络蜘蛛等等。
网络爬虫是一种自动获取网页内容的程序为搜索引擎提供了重要的数据支撑。搜索引擎通过网络爬虫技术将互联网中丰富的网页信息保存到本地形成镜像备份。我们熟悉的谷歌、百度本质上也可理解为一种爬虫。
如果形象地理解爬虫就如同一只机器蜘蛛它的基本操作就是模拟人的行为去各个网站抓取数据或返回数据。
2.爬虫的工作原理
下图是一个网络爬虫的基本框架 二、python爬虫能干什么
python爬虫就是模拟浏览器打开网页获取网页中想要的那部分数据。利用爬虫我们可以抓取商品信息、评论及销量数据可以抓取房产买卖及租售信息可以抓取各类职位信息等。
利用爬虫我们可以获取大量的价值数据从而获得感性认识中不能得到的信息比如爬取知乎优质答案为你筛选出各话题下最优质的内容。抓取淘宝、京东商品、评论及销量数据对各种商品及用户的消费场景进行分析。
抓取房产买卖及租售信息分析房价变化趋势、做不同区域的房价分析。爬取各类职位信息分析各行业人才需求情况及薪资水平。爬虫的本质爬虫的本质就是模拟浏览器打开网页获取网页中我们想要的那部分数据。
三、Python7个爬虫小案例
下面我将分享7个Python爬虫的小案例帮助大家更好地学习和了解Python爬虫的基础知识。以下是每个案例的简介和源代码
1. 爬取豆瓣电影Top250
这个案例使用BeautifulSoup库爬取豆瓣电影Top250的电影名称、评分和评价人数等信息并将这些信息保存到CSV文件中。
import requests
from bs4 import BeautifulSoup
import csv
# 请求URL
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.36
}
# 解析页面函数
def parse_html(html):
soup BeautifulSoup(html, lxml)
movie_list soup.find(ol, class_grid_view).find_all(li)
for movie in movie_list:
title movie.find(div, class_hd).find(span, class_title).get_text()
rating_num movie.find(div, class_star).find(span, class_rating_num).get_text()
comment_num movie.find(div, class_star).find_all(span)[-1].get_text()
writer.writerow([title, rating_num, comment_num])
# 保存数据函数def save_data():
f open(douban_movie_top250.csv, a, newline, encodingutf-8-sig)
global writer
writer csv.writer(f)
writer.writerow([电影名称, 评分, 评价人数])
for i in range(10):
url https://movie.douban.com/top250?start str(i*25) filter
response requests.get(url, headersheaders)
parse_html(response.text)
f.close()
if __name__ __main__:
save_data()2. 爬取猫眼电影Top100
这个案例使用正则表达式和requests库爬取猫眼电影Top100的电影名称、主演和上映时间等信息并将这些信息保存到TXT文件中。
import requests
import re
# 请求URL
url https://maoyan.com/board/4
# 请求头部
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.36
}
# 解析页面函数
def parse_html(html):
pattern re.compile(p classnamea href.*? title(.*?) data-actboarditem-click data-val{movieId:\\d}(.*?)/a/p.*?p classstar(.*?)/p.*?p classreleasetime(.*?)/p, re.S)
items re.findall(pattern, html)
for item in items:
yield {
电影名称: item[1],
主演: item[2].strip(),
上映时间: item[3]
}
# 保存数据函数
def save_data():
f open(maoyan_top100.txt, w, encodingutf-8)
for i in range(10):
url https://maoyan.com/board/4?offset str(i*10)
response requests.get(url, headersheaders)
for item in parse_html(response.text):
f.write(str(item) \) f.close() if name ‘main’: save_data()
3. 爬取全国高校名单
这个案例使用正则表达式和requests库爬取全国高校名单并将这些信息保存到TXT文件中。
import requests
import re
# 请求URL
url http://www.zuihaodaxue.com/zuihaodaxuepaiming2019.html
# 请求头部
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.36
}
# 解析页面函数
def parse_html(html):
pattern re.compile(tr classalt.*?td(.*?)/td.*?tddiv alignleft.*?a href(.*?) target_blank(.*?)/a/div/td.*?td(.*?)/td.*?td(.*?)/td.*?/tr, re.S)
items re.findall(pattern, html)
for item in items:
yield {
排名: item[0],
学校名称: item[2],
省市: item[3],
总分: item[4]
}
# 保存数据函数
def save_data():
f open(university_top100.txt, w, encodingutf-8)
response requests.get(url, headersheaders)
for item in parse_html(response.text):
f.write(str(item) \) f.close() if name ‘main’: save_data()
4. 爬取中国天气网城市天气
这个案例使用xpath和requests库爬取中国天气网的城市天气并将这些信息保存到CSV文件中。
4. 爬取中国天气网城市天气这个案例使用xpath和requests库爬取中国天气网的城市天气并将这些信息保存到CSV文件中。5. 爬取当当网图书信息
这个案例使用xpath和requests库爬取当当网图书信息并将这些信息保存到CSV文件中。
import requests
from lxml import etree
import csv
# 请求URL
url http://search.dangdang.com/?keyPythonactinput
# 请求头部
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.36
}
# 解析页面函数def parse_html(html):
selector etree.HTML(html)
book_list selector.xpath(//*[idsearch_nature_rg]/ul/li)
for book in book_list:
title book.xpath(a/title)[0]
link book.xpath(a/href)[0]
price book.xpath(p[classprice]/span[classsearch_now_price]/text())[0]
author book.xpath(p[classsearch_book_author]/span[1]/a/title)[0]
publish_date book.xpath(p[classsearch_book_author]/span[2]/text())[0]
publisher book.xpath(p[classsearch_book_author]/span[3]/a/title)[0]
yield {
书名: title,
链接: link,
价格: price,
作者: author,
出版日期: publish_date,
出版社: publisher
}
# 保存数据函数
def save_data():
f open(dangdang_books.csv, w, newline, encodingutf-8-sig)
writer csv.writer(f)
writer.writerow([书名, 链接, 价格, 作者, 出版日期, 出版社])
response requests.get(url, headersheaders)
for item in parse_html(response.text):
writer.writerow(item.values())
f.close()
if __name__ __main__:
save_data()6. 爬取糗事百科段子
这个案例使用xpath和requests库爬取糗事百科的段子并将这些信息保存到TXT文件中。
import requests
from lxml import etree
# 请求URL
url https://www.qiushibaike.com/text/
# 请求头部
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.36
}
# 解析页面函数def parse_html(html):
selector etree.HTML(html)
content_list selector.xpath(//div[classcontent]/span/text())
for content in content_list:
yield content
# 保存数据函数
def save_data():
f open(qiushibaike_jokes.txt, w, encodingutf-8)
for i in range(3):
url https://www.qiushibaike.com/text/page/ str(i1) /
response requests.get(url, headersheaders)
for content in parse_html(response.text):
f.write(content \) f.close() if name ‘main’: save_data()
7. 爬取新浪微博
这个案例使用selenium和requests库爬取新浪微博并将这些信息保存到TXT文件中。
import time
from selenium import webdriver
import requests
# 请求URL
url https://weibo.com/
# 请求头部
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.36
}
# 解析页面函数
def parse_html(html):
print(html)
# 保存数据函数
def save_data():
f open(weibo.txt, w, encodingutf-8)
browser webdriver.Chrome()
browser.get(url)
time.sleep(10)
browser.find_element_by_name(username).send_keys(username)
browser.find_element_by_name(password).send_keys(password)
browser.find_element_by_class_name(W_btn_a).click()
time.sleep(10)
response requests.get(url, headersheaders, cookiesbrowser.get_cookies())
parse_html(response.text)
browser.close()
f.close()
if __name__ __main__:
save_data()希望这7个小案例能够帮助大家更好地掌握Python爬虫的基础知识
最后
如果你也想学习Python可以关注我我会把自己知道的曾经走过的弯路都告诉你让你在学习Python的路上更加顺畅。
我自己也整理了一套最新的Python系统学习教程包括从基础的python脚本到web开发、爬虫、数据分析、数据可视化、机器学习等。如果你也喜欢编程想通过学习Python转行、做副业或者提升工作效率这份【最新全套Python学习资料】 一定对你有用
包括Python激活码安装包、Python web开发Python爬虫Python数据分析人工智能、机器学习、Python量化交易等学习教程。带你从零基础系统性的学好Python编程资料、学习路线图、源代码、软件安装包等 包含编程资料、学习路线图、源代码、软件安装包等【[点击这里]】 ① Python所有方向的学习路线图清楚各个方向要学什么东西 ② 100多节Python课程视频涵盖必备基础、爬虫和数据分析 ③ 100多个Python实战案例学习不再是只会理论 ④ 华为出品独家Python漫画教程手机也能学习 ⑤ 历年互联网企业Python面试真题,复习时非常方便****