Python第一条网络爬虫,爬取一个网页的内容

Posted lsh1628340121

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python第一条网络爬虫,爬取一个网页的内容相关的知识,希望对你有一定的参考价值。

一、球赛结果预测代码部分函数测试。
技术图片

 技术图片

 技术图片

 

 


二、用requests库函数访问搜狗网页20次。
 1 import requests
 2 from bs4 import BeautifulSoup
 3 def gethtmlText(self):
 4     try:
 5         r=requests.get(url,timeout=30)#如果状态不是200,引发异常
 6         r.raise_for_status() #无论原来用什么编码,都改成utf-8 
 7         r.encoding =utf-8
 8         soup=BeautifulSoup(r.text)
 9         return r.text,r.status_code,len(r.text),r.encoding,len(soup.text)
10     except:
11         return ""
12 url="https://www.sogou.com" 
13 print(getHTMLText(url))
14 for i in range(20):
15     print("第{}次访问".format(i+1))
16     print(getHTMLText(url))

 

技术图片

 

 

 

 三、HTML按要求打印网页。

 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4 <meta charset="utf-8">
 5 <font size="10" color="purple">
 6 <title>我的第一个网页</title>
 7 <xuehao>我的学号:2019310143143</xuehao>
 8 </font>
 9 </head>
10 <body>
11         <p style="background-color:rgb(255,0,255)">
12         </p>
13 <font size="5" color="blue">
14         <h1>欢迎来到你的三连我的心</h1>
15         <h2>好懒人就是我,我就是好懒人</h2>
16         <h3>此人很懒,无精彩内容可示</h3>
17         <h4>仅有鄙人陋见或许对你有用</h4>
18         <a href="https://home.cnblogs.com/u/LSH1628340121/">QAQ打开看看嘛QAQ</a>
19         <p  id="first">我的观众老爷们,给个三连。</p>
20 </font>
21         <img src="F:荷花.jpg" alt="荷花" width="900" height="800">
22 </body>
23                  
24               <table border="1">
25          <tr>
26 
27                 <td>点赞, 收藏,关注</td>
28           </tr>
29           <tr>
30                  <td>投币1, 投币2</td>
31            </tr>
32 </table>
33 </html>

技术图片

 

 

 

 

四、爬取2016大学排名并存为CSV文件

 1 import requests
 2 from bs4 import BeautifulSoup
 3 import csv
 4 allUniv=[]
 5 def getHTMLText (url):
 6     try:
 7         r = requests.get(url,timeout=30)
 8         r.raise_for_status()
 9         r.encoding = utf-8
10         return r.text
11     except:
12         return ""
13 def fillUnivList (soup):
14     data = soup.find_all(tr)
15     for tr in data:
16         ltd = tr.find_all(td)
17         if len(ltd)==0:
18             continue
19         singleUniv=[]
20         for td in ltd:
21             singleUniv.append(td.string)
22         allUniv.append(singleUniv)
23     write_csv(allUniv)
24 def printUnivList (num):
25     print("{:^4}{:^10}{:^5}{:^8}{:^10}". format("排名",26           "学校名称", "省市","总分","培养规模"))
27     for i in range (num):
28         u=allUniv[i]
29         print("{:^4}{:^10}{:^5}{:^8}{:^10}".format(u[0],30               u[1],u[2],u[3],u[6]))
31     return u
32 def write_csv(list):
33     name = [排名, 学校名称, 省份, 总分, 生源质量(新生高考成绩得分), 培养结果(毕业生就业率), 社会声誉(社会捐赠收入·千元), 科研规模(论文数量·篇),34 科研质量(论文质量·FWCI), 顶尖成果(高被引论文·篇), 顶尖人才(高被引学者·人), 科技服务(企业科研经费·千元), 成果转化(技术转让收入·千元)]
35     with open(C:/Users/86188/Desktop/新建文件夹/最好大学排名.csv, w) as f:
36         writer = csv.writer(f)
37         writer.writerow(name)
38         for row in list:
39             writer.writerow(row)
40 def main (num) :
41     url = http://www.zuihaodaxue.cn/zuihaodaxuepaiming2016.html
42     html = getHTMLText (url)
43     soup = BeautifulSoup(html, "html.parser")
44     fillUnivList(soup)
45     printUnivList(num)
46     print("排名情况如上所示")
47 main(310)

 

技术图片

 

 

技术图片

 

以上是关于Python第一条网络爬虫,爬取一个网页的内容的主要内容,如果未能解决你的问题,请参考以下文章

python网络爬虫之使用scrapy自动爬取多个网页

python爬虫小白求帮助:爬取豆瓣网的内容 不知道哪里出问题了 只能print一行?

python网络爬虫之scrapy 调试以及爬取网页

请教一个问题,怎么提高 python 爬虫的爬取效率

Python爬虫爬取数据的步骤

python爬虫入门爬取豆瓣电影top250