6个Python爬虫小案例:从豆瓣电影到新浪微博,掌握爬虫基础
本文介绍了6个小案例Python爬网,包括前250部Douban电影,前100部Maoyan电影,国家大学名单,Dangdang.com书籍,令人尴尬的百科全书和Sina Weibo Information,以帮助读者理解和练习Python Crawlers的基本知识。

在文章开始之前,一个用于爬行者学习的大礼品包(学习方法,思维地图,练习项目,书籍,在线课程)。
1。什么是爬行者? 1。爬虫简介
Crawler的全名是Network Crawler,缩写为Crawler,别名包括网络机器人,网络蜘蛛等。
Web Crawler是一个自动获取Web内容的程序,为搜索引擎提供重要的数据支持。搜索引擎使用Web Crawling Technology在本地互联网上保存丰富的网页信息,以形成镜像备份。我们熟悉的Google和Baidu也可以理解为本质上的爬行者。
如果您生动地理解它,爬网就像是机器蜘蛛。它的基本操作是模拟人类行为,并转到各个网站以爬网或返回数据。
2。爬行者的工作方式
下图是Web搜寻器的基本框架:
2. Python爬虫可以做什么?
Python Crawler模拟浏览器打开网页并在网页中获取所需数据的一部分。使用爬行者,我们可以捕获产品信息,评论和销售数据;我们可以捕获房地产购买,销售和租赁信息;我们可以捕获各种工作信息,等等。
使用爬行者,我们可以获取大量价值数据,以获取无法从感知知识中获得的信息,例如:爬出Zhihu的高质量答案以滤除每个主题下的最佳内容。获取淘宝和JD产品,审查和销售数据,并分析各种产品和用户的消费方案。
掌握房地产购买,销售和租赁信息,分析住房价格变化并在不同地区进行住房价格分析。有关各种工作的信息,并分析各个行业的人才需求和工资水平。 Crawler的本质:Crawler的本质是模拟浏览器打开网页,并在网页中获取我们想要的数据部分。
3。6python中的小轨道案件
在下面,我将分享7个小案例Python爬网,以帮助每个人更好地学习和了解Python爬网的基本知识。这是每种情况的简短介绍和源代码:
1。爬行前250部迪亚曼电影
此案例使用美丽的小组库来爬网信息,例如电影名称,评分和在douban电影TOP 250中评级的人数,并将此信息保存到CSV文件中。
import requests
from bs4 import BeautifulSoup
import csv
# 请求URL
url = ''
# 请求头部
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='', encoding='utf-8-sig')
global writer
writer = csv.writer(f)
writer.writerow(['电影名称', '评分', '评价人数'])
for i in range(10):
url = '' + str(i*25) + '&filter='
response = requests.get(url, headers=headers)
parse_html(response.text)
f.close()
if __name__ == '__main__':
save_data()
2。爬行猫眼的前100部电影
此案例使用正则表达式和请求库来爬网信息,例如电影名称,主演和发布Maoyan电影的100个时间,并将此信息保存到TXT文件中。
import requests
import re
# 请求URL
url = ''
# 请求头部
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('.*?(.*?)
.*?(.*?)
', 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', encoding='utf-8')
for i in range(10):
url = '' + str(i*10)
response = requests.get(url, headers=headers)
for item in parse_html(response.text):
f.write(str(item) + '\\\\n')
f.close()
if __name__ == '__main__':
save_data()
3。爬行国立大学名单
此案使用正则表达式,并请求库来抓取大学和大学的国家列表,并将此信息保存到TXT文件中。
import requests
import re
# 请求URL
url = ''
# 请求头部
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('.*?(.*?) .*?.*?(.*?) .*?(.*?) .*?(.*?) .*? ', 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', encoding='utf-8')
response = requests.get(url, headers=headers)
for item in parse_html(response.text):
f.write(str(item) + '\\\\n')
f.close()
if __name__ == '__main__':
save_data()
4。爬网dangdang.com的书信息
此情况使用XPATH,并请求库抓取Dangdang.com的书籍信息,并将此信息保存到CSV文件中。
import requests
from lxml import etree
import csv
# 请求URL
url = ''
# 请求头部
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('//*[@id="search_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[@class="price"]/span[@class="search_now_price"]/text()')[0]
author = book.xpath('p[@class="search_book_author"]/span[1]/a/@title')[0]
publish_date = book.xpath('p[@class="search_book_author"]/span[2]/text()')[0]
publisher = book.xpath('p[@class="search_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='', encoding='utf-8-sig')
writer = csv.writer(f)
writer.writerow(['书名', '链接', '价格', '作者', '出版日期', '出版社'])
response = requests.get(url, headers=headers)
for item in parse_html(response.text):
writer.writerow(item.values())
f.close()
if __name__ == '__main__':
save_data()
5。爬行令人尴尬的事物百科全书
此情况使用XPATH并请求库将笑话从百科全书中抓住,并将此信息保存到TXT文件中。
import requests
from lxml import etree
# 请求URL
url = ' '
# 请求头部
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[@class="content"]/span/text()')
for content in content_list:
yield content
# 保存数据函数
def save_data():
f = open('qiushibaike_jokes.txt', 'w', encoding='utf-8')
for i in range(3):
url = ' ' + str(i+1) + '/'
response = requests.get(url, headers=headers)
for content in parse_html(response.text):
f.write(content + '\\\\n')
f.close()
if __name__ == '__main__':
save_data()
6。爬网
此情况使用硒,并请求库爬新南微博,并将此信息保存到TXT文件中。
import time
from selenium import webdriver
import requests
# 请求URL
url = ' '
# 请求头部
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', encoding='utf-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, headers=headers, cookies=browser.get_cookies())
parse_html(response.text)
browser.close()
f.close()
if __name__ == '__main__':
save_data()
我希望这6个小案例可以帮助每个人更好地掌握Python爬网的基本知识!
最后,我将与您分享免费的Python学习材料,包括视频和源代码。我希望该课程可以帮助那些对当前情况不满意并想改善自己但没有方向不满意的朋友。您也可以与我学习和交流。
编程材料,学习路线图,源代码,软件安装软件包等!
如何收集,查看下面的图片!
①学习Python的所有方向的学习路线图,都知道在每个方向上学习什么
②超过100个Python课程视频,涵盖基本基础知识,爬网和数据分析
③超过100个python实际情况,学习不再仅仅是理论上的
④华为制作的独家Python漫画教程,即使在手机上也可以学习
⑤多年来,互联网公司的Python采访问题非常方便,以审查****
![在此处插入图片描述](#pic_center