Python---實驗九

1、使用標準庫urllib爬取“http://news.pdsu.edu.cn/info/1005/31269.htm”平頂山學院新聞網上的圖片,要求:保存到F盤pic目錄中,文件名稱命名規則為“本人姓名”+ “_圖片編號”,如姓名為張三的第一張圖片命名為“張三_1.jpg”。

from re import findall
from urllib.request import urlopenurl = 'http://news.pdsu.edu.cn/info/1005/31269.htm'
with urlopen(url) as fp:content=fp.read().decode('utf-8')pattern = '<img width="500" src="(.+?)"'
#查找所有圖片鏈接地址
result = findall(pattern, content)  #捕獲分組
#逐個讀取圖片數據,并寫入本地文件
path='f:/pic/'
name="煙雨"
for index, item in enumerate(result):picture = 'http://news.pdsu.edu.cn/' + itemwith urlopen(str(picture)) as fp:with open(path+name+'_'+str(index+1)+'.png','wb') as fp1: #這里因為是從1開始,這里注意下fp1.write(fp.read())

效果圖如下:
在這里插入圖片描述

2、采用scrapy爬蟲框架,抓取平頂山學院新聞網(http://news.pdsu.edu.cn/)站上的內容,具體要求:抓取新聞欄目,將結果寫入lm.txt。

cmd打開之后就別關了
scrapy startproject wsqwsq為項目名
cd wsq
scrapy genspider lm news.pdsu.edu.cnlm為爬蟲名稱,pdsu.edu.cn為爬取起始位置
在這里插入圖片描述
分析:編寫正確的正則表達式篩選信息
由關鍵信息:<h2 class="fl">媒體平院</h2>
篩選其正則表達式如下:soup.find_all('h2', class_='fl')
找到lm.py也就是上面創建的爬蟲
編輯:將下面代碼負責粘貼下
pip install beautifulsoup4
pip install scrapy
倆第三方庫要安裝下

# -*- coding: utf-8 -*-
import scrapy
from bs4 import BeautifulSoup
import re class LmmSpider(scrapy.Spider):name = 'lmm'allowed_domains = ['pdsu.cn']start_urls = ['http://news.pdsu.edu.cn/']def parse(self, response):html_doc=response.textsoup= BeautifulSoup(html_doc, 'html.parser')         re=soup.find_all('h2', class_='fl')content=''for lm in re:print(lm.text)content+=lm.text+'\n'with open('f:\\lm.txt', 'a+') as fp:fp.writelines(content)#保存路徑可變

scrapy crawl lmlm為爬蟲名稱
效果圖如下:
在這里插入圖片描述

3、采用request爬蟲模塊,抓取平頂山學院網絡教學平臺上的Python語言及應用課程上的每一章標題(http://mooc1.chaoxing.com/course/206046270.html)。

cmd打開之后就別關了
scrapy startproject yyyy為項目名
cd yy
scrapy genspider beyond news.mooc1.chaoxing.com/course/206046270.htmlbeyond為爬蟲名稱,mooc1.chaoxing.com/course/206046270.html為爬取起始位置
在這里插入圖片描述
分析:編寫正確的正則表達式篩選信息
由關鍵信息:<div class="f16 chapterText">第一章 python概述</div>
篩選其正則表達式如下:soup.findAll('div',class_='f16 chapterText')
找到beyond.py也就是上面創建的爬蟲
編輯:將下面代碼負責粘貼下

# -*- coding: utf-8 -*-
import scrapy
import re 
import requests
import bs4headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.146 Safari/537.36'
}url='http://mooc1.chaoxing.com/course/206046270.html'
response = requests.get(url,headers=headers).text
soup = bs4.BeautifulSoup(response,'html.parser')
t=soup.findAll('div',class_='f16 chapterText')
for ml in t:print (ml.text)

效果圖如下:
在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/379095.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/379095.shtml
英文地址,請注明出處:http://en.pswp.cn/news/379095.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Request.Url學習(轉)

原文地址&#xff1a;http://www.cnblogs.com/jame-peng1028/articles/1274207.html?login1#commentform 網址&#xff1a;http://localhost:1897/News/Press/Content.aspx/123?id1#tocRequest.ApplicationPath/Request.PhysicalPathD:\Projects\Solution\web\News\Press\Con…

32接上拉5v_51單片機P0口上拉電阻的選擇

作為I/O口輸出的時候時&#xff0c;輸出低電平為0 輸出高電平為高組態(并非5V&#xff0c;相當于懸空狀態&#xff0c;也就是說P0 口不能真正的輸出高電平)。給所接的負載提供電流&#xff0c;因此必須接(一電阻連接到VCC)&#xff0c;由電源通過這個上拉電阻給負載提供電流。P…

[轉載]FPGA/CPLD重要設計思想及工程應用(時序及同步設計)

來源&#xff1a;http://www.eetop.cn/blog/html/11/317611-13412.html 數字電路中,時鐘是整個電路最重要、最特殊的信號。 第一, 系統內大部分器件的動作都是在時鐘的跳變沿上進行, 這就要求時鐘信號時延差要非常小, 否則就可能造成時序邏輯狀態出錯. 第二, 時鐘信號通常是系統…

duration java_Java Duration類| ofMinutes()方法與示例

duration javaDuration Class of Minutes()方法 (Duration Class ofMinutes() method) ofMinutes() method is available in java.time package. ofMinutes()方法在java.time包中可用。 ofMinutes() method is used to represent the given minutes value in this Duration. of…

實驗五 圖形設計

每復制一個方法都要綁定Paint事件 一、創建Windows窗體應用程序&#xff0c;要求如下&#xff1a;&#xff08;源代碼運行界面&#xff0c;缺少任一項為0分&#xff0c;源代碼只需粘貼繪制圖形代碼所在的方法&#xff0c;不用粘貼太多&#xff09; 例如: &#xff08;1&…

yuv編碼成h264格式寫成文件

yuv編碼成h264格式寫成文件 &#xff08;使用ffmpeg 編碼yuv420p編碼成h264格式&#xff09; #include <stdio.h> #include <stdlib.h> #include <stdint.h>#include <libavcodec/avcodec.h> #include <libavutil/time.h> #include <libavut…

c++ stl隊列初始化_聲明,初始化和訪問向量| C ++ STL

c stl隊列初始化Here, we have to declare, initialize and access a vector in C STL. 在這里&#xff0c;我們必須聲明&#xff0c;初始化和訪問C STL中的向量。 向量聲明 (Vector declaration) Syntax: 句法&#xff1a; vector<data_type> vector_name;Since, vec…

ADO.NET與SQL Server數據庫的交互

7.3.1 使用SqlConnection對象連接數據庫 例如&#xff1a;建立與SQL Server數據庫的連接。 string connstring"Data Sourceservername;uidusername;pwdpassword;Initial Catalogdbname";SqlConnection connnew SqlConnection(connstring);conn.Open(); 例如&#xf…

nsis 修改exe執行權限

通過修改注冊表的方式&#xff0c;修改exe的執行權限。&#xff0c;以下例子是使用管理員運行。 ;添加admin權限 SectionWriteRegStr HKCU "SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers" "$INSTDIR\spp.exe" "RUNASADMIN&qu…

linux ftp日志_linux學習筆記(一)——Linux分區和目錄結構

linux學習筆記&#xff08;一&#xff09;——Linux分區和目錄結構安裝Linux時&#xff0c;手動掛載分區的情況下&#xff0c;/ 和 swap 是必須要掛載的&#xff0c;其他/home、/boot 等可以根據需要自行掛載。一般來說&#xff0c;簡單的話&#xff0c;建議掛載三個分區&#…

C#通過VS連接MySQL數據庫實現增刪改查基本操作

創建一個數據庫wsq 里面有一張beyondyanyu表 表里面有id(int)、names(varchar)、count(int)、passwords(varchar) 數據可以自己添 1、導入MySQL引用&#xff0c;你需要從官網或者其他地方下載&#xff0c;私聊我也可以 using MySql.Data.MySqlClient; 2、創建MySqlConnection對…

使用ffmpeg的filter處理yuv數據包括split filter(分流)、crop filter(裁剪)、vflip filter(垂直向上的翻轉)、overlay filter(合成)

使用ffmpeg的filter處理yuv數據包括split filter(分流)、crop filter(裁剪)、vflip filter(垂直向上的翻轉)、overlay filter(合成) #include <stdio.h>#include <libavcodec/avcodec.h> #include <libavformat/avformat.h> #include <libavfilter/avfil…

vc++ 6.0 堆棧_在C ++中使用鏈接列表實現堆棧

vc 6.0 堆棧To implement a stack using a linked list, basically we need to implement the push() and pop() operations of a stack using linked list. 要使用鏈接列表實現堆棧 &#xff0c;基本上&#xff0c;我們需要使用鏈接列表實現堆棧的push()和pop()操作。 Exampl…

煙雨小書店

煙雨小書店演示視頻 源碼

協議地址結構_TCP/IP 協議 講解

計算機網絡體系結構分層太厲害了&#xff0c;終于有人能把TCP/IP 協議講的明明白白了計算機網絡體系結構分層不難看出&#xff0c;TCP/IP 與 OSI 在分層模塊上稍有區別。OSI 參考模型注重“通信協議必要的功能是什么”&#xff0c;而 TCP/IP 則更強調“在計算機上實現協議應該開…

ffmpeg進行混音,將兩路音頻pcm數據合成一路輸出

ffmpeg進行混音&#xff0c;將兩路音頻pcm數據合成一路輸出 audiomixer.h #ifndef AUDIOMIXER_H #define AUDIOMIXER_H#include <map> #include <mutex> #include <cstdio> #include <cstdint> #include <string> #include <memory>exter…

python sep函數_Python中帶有print()函數的sep參數

python sep函數sep parameter stands for separator, it uses with the print() function to specify the separator between the arguments. sep參數代表分隔符&#xff0c;它與print()函數一起使用以指定參數之間的分隔符。 The default value is space i.e. if we dont us…

關于 MySQL 主從復制的配置(轉)

來源&#xff1a;http://www.oschina.net/bbs/thread/10388設置Mysql的主從設置很重要&#xff0c;有如下幾點用處&#xff1a;1 做備份機器&#xff0c;一旦主服務器崩潰&#xff0c;可以直接啟用從服務器作為主服務器2 可以直接鎖定從服務器的表只讀&#xff0c;然后做備份數…

Silverlight 同域WCF免跨域文件

在sl3使用wcf時常常會因為sl中調用了不同域的wcf服務而導至調用服務失敗&#xff0c;記得在很久以前sl當是只支持同域的訪問&#xff0c;那么讓我有一個想法&#xff0c;就是在sl引用時可以動態地取得當前sl所在的域&#xff0c;而wcf服務也必須同時部署到這個域下邊&#xff0…