程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

python爬取網頁信息

編輯:Python

PythonSpider項目

Python爬蟲是用Python編程語言實現的網絡爬蟲,主要用於網絡數據的抓取和處理,相比於其他語言,Python是一門非常適合開發網絡爬蟲的編程語言,大量內置包,可以輕松實現網絡爬蟲功能。Python爬蟲可以做的事情很多,如搜索引擎、采集數據、廣告過濾等,Python爬蟲還可以用於數據分析,在數據的抓取方面可以作用巨大!此次項目我們所需軟件:
PyCharm
下載地址:鏈接: link.

需求分析

在大數據時代,怎樣通過爬蟲快速並且有效的獲取到某一個網頁的信息。

概要設計

1.用import導入相關的包
2.設置公共變量url和headers
3.獲取頁面並返回參數
4.解析頁面並返回參數
5.保存頁面並返回參數

代碼實現

一、導入相應模塊

import requests
import re
import csv
import time
import random

二、獲取網頁信息,並解析

class DongManSpider:
#公共變量
def __init__(self):
self.url = " " #需要給出相應路徑的網頁
self.headers = {"User-Agent":" "}#需要獲取目標地址中的User-Agent,有時候還需要加上Cookie。
#獲取頁面
def get_html(self,url):
#每生成一個網頁,獲取該網頁的代碼
html = requests.get(url, headers=self.headers).text
#返回參數
return html
#解析頁面
def parse_html(self,html):
#編寫正則表達式
regex = ''' ''' #正則表達式裡放你需要爬取的信息
#構建正則對象
p = re.compile(regex, re.S)
#匹配
info = p.findall(html)
#返回參數
return info

三、保存輸出

 #保存頁面
def save_html(self,info):
# 循環遍歷出裡面的元組
for i in info:
#構建一個空列表
L = []
#將數據清洗過後放入列表,再用strip()去掉多余的空格和換行
name= i[0].strip()
address= i[1].strip()
time= i[2].strip()
L.append(name)
L.append(address)
L.append(time)
#每遍歷一個元組,就保存追加至domgman.csv文件中
f = open("dongman.csv", "a", encoding="utf-8-sig", newline="")
#將open對象構建成csv對象
w = csv.writer(f)
#將遍歷的元組放進文件中
w.writerow(L)

四、運行測試
用我Excel打開之前獲取到的CSV文件,我們就得到了我們想要的信息。

如何正確的書寫正則表達式

1、ctrl + A 復制頁面源碼,到txt文本,在網頁中找到關鍵字段,並在txt文本中查找其位置
2、在網頁中找到關鍵字段的位置,觀察其同一模塊的信息,與txt文本相對應,然後定位。然後觀察要爬取的第一個信息的開頭,和要爬取最後一個信息的開頭,是否是每個信息段的唯一標志
3、確定信息段後,單獨保存。確定要爬取的信息,然後再判斷定位該信息的開頭是否是信息段內的唯一字符。保留確定每一個關鍵信息的開頭,以及最近的結尾字段
4、用.代替每一段結尾至下一段開頭的內容。把要爬取的內容,用(.)代替

如何正確找到網頁的User-Agent

1、找到並Copy它的值進去就可以了

此技術大多用於靜態網頁的爬取,對於擁有較高反爬機制的網站會出現數據獲取不了的狀況。只用做學習交流。

先自我介紹一下,小編13年上師交大畢業,曾經在小公司待過,去過華為OPPO等大廠,18年進入阿裡,直到現在。深知大多數初中級java工程師,想要升技能,往往是需要自己摸索成長或是報班學習,但對於培訓機構動則近萬元的學費,著實壓力不小。自己不成體系的自學效率很低又漫長,而且容易碰到天花板技術停止不前。因此我收集了一份《java開發全套學習資料》送給大家,初衷也很簡單,就是希望幫助到想自學又不知道該從何學起的朋友,同時減輕大家的負擔。添加下方名片,即可獲取全套學習資料哦


  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved