日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

爬虫项目实战(二)

發布時間:2023/12/20 编程问答 51 豆豆
生活随笔 收集整理的這篇文章主要介紹了 爬虫项目实战(二) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.


(一)爬蟲實戰之Xpath數據解析
1)、XPath介紹
XPath,全稱XML Path Language,即XML路徑語言,它是一門在XML文檔中查找信息的語言。最初是用來搜尋XML文檔的,但同樣適用于HTML文檔的搜索。所以在做爬蟲時完全可以使用XPath做相應的信息抽取。
2)、XPath的常用規則:

這里列出了XPath的常用匹配規則,示例如下: .//title[@lang='eng‘],這是一個XPath規則,代表的是選擇所有名稱為title,同時屬性lang的值為eng的節點,后面會通過Python的lxml庫,利用XPath進行HTML的解析。
3)、安裝
windows-> python3環境下: pip install lxml
linux環境下: pip3 install lxml

4)、實例
注意:Chrome中的源代碼無法直接復制,
小插曲:如何復制Chrome瀏覽器中的源代碼
現在很多網頁直接查看源代碼是看不到完整的源代碼的,有些網頁往下翻會不停的加載新內容,就算最終全部加載完了,源代碼中也不會顯示網頁的全部內容。只有按F12或ctrl+shift+i才能看到所有元素的源代碼。

從上圖可以看出來,這些元素的源代碼默認是無法選中進行一次性復制的,只能一個一個元素復制。下面就分享一下復制整個頁面的源代碼的方法。
a、如下圖,找到頂部的html標簽,然后點擊鼠標右鍵后選擇Edit as HTML
b、現在按ctrl+a全部選中就可以復制到剪貼板了。

c、如果覺得格式有些亂,可通過網上的在線html工具進行在線格式化
https://tool.oschina.net/codeformat/html
問題解決!!!
第一種方式:

from lxml import etree text = ''' <! DOCTYPE html> <html lang="zh-CN"> <head><meta charset="UTF-8"><title>學習猿地 - IT培訓|Java培訓|Python培訓|ui設計培訓|web前端培訓|GO培訓|PHP培訓|成就自己的只需一套精品</title> </head> <body><ul><li><a href="/a/b/c/java/">java工程師</a></li><li><a href="/a/b/c/python/">Python工程師</a></li><li><a href="/a/b/c/ai">AI工程師</a></li></ul> </body> </html> ''' #使用etree解析html字符串 html = etree.HTML(text) #print(html) #提取數據 # r = html.xpath("/html/body/ul/li/a/text()") # 執行結果:['java工程師', 'Python工程師', 'AI工程師'] # print(r)# r = html.xpath("/html/body/ul/li[1]/a/text()") # print(r) # ['java工程師']注意:下標從1開始,不是從0開始

第二種方式:

from lxml import etree # 第二種方式,讀取一個html文件并解析 html = etree.parse('./text.html', etree.HTMLParser()) # print(html) # 提取數據 # r = html.xpath("/html/body/ul/li/a/text()") # print(r) #執行結果  ['java工程師', 'Python工程師', 'AI工程師']#范圍更廣,獲取頁面中所有li里面的數據 # r = html.xpath("//li/a/text()") # print(r) #執行結果 ['java工程師', 'Python工程師', 'AI工程師', '猿叔', '猿嬸', '猿姐']#提取指定標簽中的數據 h = html.xpath('//div[@class="teacher"]/ul/li/a/text()') print(h) #執行結果['猿叔', '猿嬸', '猿姐']#獲取指定標簽的屬性 r = html.xpath('//div[@class="teacher"]//li/a/@href') print(r) #執行結果['/1/', '/2/', '/3/'] res = list(zip(h,r)) print(res) #執行結果[('猿叔', '/1/'), ('猿嬸', '/2/'), ('猿姐', '/3/')]

import requests from lxml import etree #封裝類,進行學習猿地的登錄和訂單的獲取 class LMonkey():#登陸請求地址loginurl = 'https://www.lmonkey.com/login'# 帳戶中心地址orderurl = 'https://www.lmonkey.com/my/order'# 請求頭headerheaders = {'User - agent': 'Mozilla / 5.0(Linux; Android 6.0;Nexus5Build / MRA58N) AppleWebKit / 537.36(KHTML, like Gecko) Chrome / 83.0.4103.116Mobile Safari / 537.36'}# 請求對象req = None#token口令token = ''#訂單號ordercode = 0# 初始化方法def __init__(self):#請求對象的初始化self.req = requests.session()if self.getlogin():if self.postlogin():self.getorder()# get登陸頁面,獲取_tokendef getlogin(self):# 1、get請求login頁面,設置cookie獲取_tokenres = self.req.get(url=self.loginurl,headers=self.headers)if res.status_code == 200:print('get登錄頁面請求成功')html = etree.HTML(res.text)self.token = html.xpath('//input[@name="_token"]/@value')[0]print('token獲取成功')return Trueelse:print('請求錯誤')#post請求登錄,設置cookiedef postlogin(self):uname = input('手機號:')passw = input('密碼:')data = {'_token':self.token,'username':uname,'password':passw}#發起post請求res = self.req.post(url=self.loginurl,headers=self.headers,data=self.data)if res.status_code == 200 or res.status_code == 302:print('登陸成功')#請求訂單數據#get請求帳戶中心,獲取默認訂單號def getorder(self):# 3、get請求帳戶中心,獲取默認訂單號res = self.req.get(url=self.orderurl,headers=self.headers,)if res.status_code == 200:print("帳戶中心請求成功,正在解析數據")html = etree.HTML(res.text)r = html.xpath('//div[@class="avatar-content"]//small/text()')print(r)self.ordercode = robj = LMonkey() # obj.getlogin() # obj.postlogin()#1、get請求login頁面,設置cookie獲取_token#2、post請求,提交登陸數據,進行登陸,并設置cookie#3、get請求帳戶中心,獲取默認訂單號 import requests,json from lxml import etreeclass Yq():#請求的地址  猿著url = 'https://www.lmonkey.com/essence'#定義請求頭信息headers = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36'}#爬取的數據data = ''#存儲數據filepath = './yq.json'#初始化def __init__(self):#發送請求res = requests.get(url=self.url,headers=self.headers)if res.status_code == 200:#請求的內容寫入文件with open('./yq.html','w',encoding='utf-8') as fp:fp.write(res.text)if self.pasedata():self.writedata()#解析數據def pasedata(self):#解析數據html = etree.parse('./yq.html',etree.HTMLParser())#提取數據 作者 文章標題 文章地址urlauthor = html.xpath('//div[contains(@class,"old_content")]//div[contains(@class,"list-group-item-action")]//strong/a/text()')titles = html.xpath('//div[contains(@class,"old_content")]//div[contains(@class,"flex-fill")]//div/text()')titleurl = html.xpath('//div[contains(@class,"old_content")]//div[contains(@class,"flex-fill")]//a/@href')#print(*zip(author,titles,titleurl))#運行結果('xxyd_h5x', 'JetBrains開發工具正版授權領取', 'https://www.lmonkey.com/t/lpLmQeKLg') ('IT頭條', '面向回家編程!GitHub標星兩萬的”Python搶票教程”,我們先幫你跑了一遍', 'https://www.lmonkey.com/t/lpLmQeKLg') ('duke', 'Python教程-一文讀懂運算和運算符', 'https://www.lmonkey.com/t/lpLmQeKLg') ('dragonsz', 'CentOS7 下使用 rsync+sersync 配置文件自動同步', 'https://www.lmonkey.com/t/user/15') ('qingqi', 'Python 教程-代碼測試', 'https://www.lmonkey.com/t/2zLAPzMyW') ('jhxspy', 'Python教程-強制數據類型轉換', 'https://www.lmonkey.com/t/2zLAPzMyW') ('xxyd_python', 'Python 教程-從變量開始', 'https://www.lmonkey.com/t/2zLAPzMyW') ('IT頭條', 'Python 教程-Python 安裝', 'https://www.lmonkey.com/t/2zLAPzMyW') ('IT頭條', 'Python 教程-了解Python', 'https://www.lmonkey.com/t/2zLAPzMyW') ('GaiJoon', '喊話 JavaScript 開發者:玩 DOM 也要專業范兒', 'https://www.lmonkey.com/t/2zLAPzMyW') ('IT頭條', '1000 行 Python 代碼腳本 bug,或影響上百篇學術論文', 'https://www.lmonkey.com/t/2zLAPzMyW') ('IT頭條', '生產環境下的LAMP環境搭建', 'https://www.lmonkey.com/t/user/168547') ('王炸', 'Golang語言的主要特性與發展的環境和影響因素', 'https://www.lmonkey.com/t/G5yvRWXyp') ('王炸', '分享 10 個有用的 Laravel 5.8 集合輔助方法', 'https://www.lmonkey.com/t/G5yvRWXyp')# 整理數據data = []for i in range(0,len(author)):res = {'author':author[i],'title':titles[i],'url':titleurl[i]}data.append(res)# print(data)#運行結果[{'author': 'xxyd_h5x', 'title': 'JetBrains開發工具正版授權領取', 'url': 'https://www.lmonkey.com/t/lpLmQeKLg'}, {'author': 'IT頭條', 'title': '面向回家編程!GitHub標星兩萬的”Python搶票教程”,我們先幫你跑了一遍', 'url': 'https://www.lmonkey.com/t/lpLmQeKLg'}, {'author': 'duke', 'title': 'Python教程-一文讀懂運算和運算符', 'url': 'https://www.lmonkey.com/t/lpLmQeKLg'}, {'author': 'dragonsz', 'title': 'CentOS7 下使用 rsync+sersync 配置文件自動同步', 'url': 'https://www.lmonkey.com/t/user/15'}, {'author': 'qingqi', 'title': 'Python 教程-代碼測試', 'url': 'https://www.lmonkey.com/t/2zLAPzMyW'}, {'author': 'jhxspy', 'title': 'Python教程-強制數據類型轉換', 'url': 'https://www.lmonkey.com/t/2zLAPzMyW'}, {'author': 'xxyd_python', 'title': 'Python 教程-從變量開始', 'url': 'https://www.lmonkey.com/t/2zLAPzMyW'}, {'author': 'IT頭條', 'title': 'Python 教程-Python 安裝', 'url': 'https://www.lmonkey.com/t/2zLAPzMyW'}, {'author': 'IT頭條', 'title': 'Python 教程-了解Python', 'url': 'https://www.lmonkey.com/t/2zLAPzMyW'}, {'author': 'GaiJoon', 'title': '喊話 JavaScript 開發者:玩 DOM 也要專業范兒', 'url': 'https://www.lmonkey.com/t/2zLAPzMyW'}, {'author': 'IT頭條', 'title': '1000 行 Python 代碼腳本 bug,或影響上百篇學術論文', 'url': 'https://www.lmonkey.com/t/2zLAPzMyW'}, {'author': 'IT頭條', 'title': '生產環境下的LAMP環境搭建', 'url': 'https://www.lmonkey.com/t/user/168547'}, {'author': '王炸', 'title': 'Golang語言的主要特性與發展的環境和影響因素', 'url': 'https://www.lmonkey.com/t/G5yvRWXyp'}, {'author': '王炸', 'title': '分享 10 個有用的 Laravel 5.8 集合輔助方法', 'url': 'https://www.lmonkey.com/t/G5yvRWXyp'}]self.data = datareturn True#寫入數據def writedata(self):#寫入數據with open('self.filepath','w')as fp:json.dump(self.data,fp)#實例化對象 Yq()

(二)爬蟲實戰BeautifulSoup數據解析
1)、bs4的安裝與三種使用方式
BeautifulSoup是一個可以從HTML或XML文件中提取數據的python庫,它能夠通過你喜歡的轉換器實現慣用的文檔,導航、查找、修改文檔的方式,BeautifulSoup可節省大量的時間。
官方文檔:https://www.crummy.com/software/BeautifulSoup/bs4/doc
a、安裝
命令:pip install BeautifulSoup4
插曲一:解決bug—You should consider upgrading via the ‘python -m pip install --upgrade pip’ command.

刪除下列文件夾D:\softwaredownload\anaconda\Lib\site-packages\pip-20.0.2.dist-info

再次運行python -m pip install --upgrade pip 后升級成功,之前不能安裝的包也能安裝了!

問題解決


b、三種使用方式
(1)使用Tag對象按照文檔結構獲取數據

#安裝后需要在bs4中導入使用 from bs4 import BeautifulSoup #定義html文檔內容 html_doc = """ <html><head><title abc="123">The Dormouse's story</title></head> <body> <p class="title"><b>The Dormouse's story</b></p><p class="story">Once upon a time there were three little sisters; and their names were <a href="http://example.com/elsie" class="sister" id="link1">Elsie</a>, <a href="http://example.com/lacie" class="sister" id="link2">Lacie</a> and <a href="http://example.com/tillie" class="sister" id="link3">Tillie</a>; and they lived at the bottom of a well.</p><p class="story">...</p> """ #創建一個BeautifulSoup對象,建議手動指定解析器:soup = BeautifulSoup(html_doc,'lxml) soup = BeautifulSoup(html_doc,'lxml')#通過tag標簽對象獲取文檔數據 r = soup.title r = soup.title['abc'] # r = soup.p # r = soup.p['class'] # r = soup.title.text print(r)2)使用find和find_all方法進行查找


(3)、使用CSS選擇器


#安裝后需要在bs4中導入使用 from bs4 import BeautifulSoup #定義html文檔內容 html_doc = """ <html><head><title abc="123">The Dormouse's story</title></head> <body> <p class="title"><b>The Dormouse's story</b></p><p class="story">Once upon a time there were three little sisters; and their names were <a href="http://example.com/elsie" class="sister" id="link1">Elsie</a>, <a href="http://example.com/lacie" class="sister" id="link2">Lacie</a> and <a href="http://example.com/tillie" class="sister" id="link3">Tillie</a>; and they lived at the bottom of a well.</p><p class="story">...</p> """ #1、創建一個BeautifulSoup對象,建議手動指定解析器:soup = BeautifulSoup(html_doc,'lxml) soup = BeautifulSoup(html_doc,'lxml')#通過tag標簽對象獲取文檔數據 # r = soup.title # r = soup.title['abc'] # r = soup.p # r = soup.p['class'] # r = soup.title.text # print(r) #2、通過搜索獲取頁面中的元素 find,find_all # r = soup.find('a')#運行結果<a class="sister" href="http://example.com/elsie" id="link1">Elsie</a> # r = soup.find_all('a')#運行結果[<a class="sister" href="http://example.com/elsie" id="link1">Elsie</a>, <a class="sister" href="http://example.com/lacie" id="link2">Lacie</a>, <a class="sister" href="http://example.com/tillie" id="link3">Tillie</a>] # r = soup.find('title') # print(r.text) # print(r.get_text()) # print(r.get_text) # print(r) '''運行結果The Dormouse's storyThe Dormouse's story<bound method Tag.get_text of <title abc="123">The Dormouse's story</title>><title abc="123">The Dormouse's story</title>'''# 3、.css選擇器 #通過標簽選擇元素 # r = soup.select('title') #通過class類名獲取元素 # r = soup.select('.title') #通過ID名獲取元素 # r = soup.select('#link2') #通過空格,層級關系獲取元素 # r = soup.select('html body p') #通過逗號,并列關系獲取元素 r = soup.select('p,.title') print(r)

2)bs4-學習猿地-猿圈

''' 分析爬取的數據 數據源地址:https://www.lmonkey.com/t 數據內容:文章標題、文章的鏈接、作者、發布時間 工具:python,requests,bs4 ''' import requests,json from bs4 import BeautifulSoup#1.定義請求的URL和請求頭 url = 'https://www.lmonkey.com/t' #定義請求頭信息 headers = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36' } #2.發送請求 res = requests.get(url,headers=headers)#3.判斷請求是否成功,并獲取請求的源代碼 if res.status_code == 200:pass#4.解析數據soup = BeautifulSoup(res.text,'lxml')#獲取頁面中所有的文章divs = soup.find_all('div',class_="list-group-item list-group-item-action p-06")varlist= []for i in divs:r = i.find('div',class_="topic_title mb-0 lh-180")if r:# print(i.a['href'])# print(i.strong.a.text)# print(i.span['title'])vardict = {'title':r.text.split('\n')[0],'url':i.a['href'],'author':i.strong.a.text,'time':i.span['title']}#將文本切分,只要第一個內容varlist.append(vardict)print(varlist)#運行結果'''[{'title': '圖層操作'}, {'title': 'ps_行業介紹筆記'}, {'title': 'DIV+CSS頁面布局筆記'}, {'title': '認識網站筆記'}, {'title': 'ps_行業介紹筆記'}, {'title': 'DIV+CSS頁面布局筆記'}, {'title': '認識網站筆記'}, {'title': 'requests筆記'}, {'title': 'Java的各種數據類型對象庫的處理應用筆記'}, {'title': 'Java語言的基本語法格式筆記'}, {'title': 'Java程序開發入門筆記'}, {'title': 'Java程序開發入門筆記'}, {'title': 'Java編譯過程'}, {'title': '常用快捷鍵'}, {'title': 'Java程序開發入門筆記'}]'''#5.寫入數據with open ('./yq.json','w') as fp:json.dump(varlist,fp) #運行結果 [{'title': '圖層操作', 'url': 'https://www.lmonkey.com/t/oREQ9lXE1', 'author': '?_xQfer4', 'time': '2020-06-17 17:50:37'}, {'title': 'ps_行業介紹筆記', 'url': 'https://www.lmonkey.com/t/1NLXY8jBV', 'author': '?_xQfer4', 'time': '2020-06-17 17:33:43'}, {'title': 'DIV+CSS頁面布局筆記', 'url': 'https://www.lmonkey.com/t/GRLbK8zBz', 'author': '~~~七~~~', 'time': '2020-06-13 17:54:32'}, {'title': '認識網站筆記', 'url': 'https://www.lmonkey.com/t/oZBde7OEp', 'author': 'coding_dog', 'time': '2020-06-09 19:43:36'}, {'title': 'ps_行業介紹筆記', 'url': 'https://www.lmonkey.com/t/qpBarN3EJ', 'author': '?_xQfer4', 'time': '2020-06-07 22:15:14'}, {'title': 'DIV+CSS頁面布局筆記', 'url': 'https://www.lmonkey.com/t/dvy91vbyK', 'author': '櫻桃大嘴猴.', 'time': '2020-06-04 11:30:36'}, {'title': '認識網站筆記', 'url': 'https://www.lmonkey.com/t/kNB0opeLe', 'author': '徐梟雄老師-英子', 'time': '2020-05-31 21:30:56'}, {'title': 'requests筆記', 'url': 'https://www.lmonkey.com/t/WMLDKw5yY', 'author': '溫水泡青蛙', 'time': '2020-05-31 16:00:54'}, {'title': 'Java的各種數據類型對象庫的處理應用筆記', 'url': 'https://www.lmonkey.com/t/QOLMxNmyd', 'author': '明明就晴天', 'time': '2020-05-29 13:23:38'}, {'title': 'Java語言的基本語法格式筆記', 'url': 'https://www.lmonkey.com/t/wDEx3zZBK', 'author': '明明就晴天', 'time': '2020-05-28 23:20:57'}, {'title': 'Java程序開發入門筆記', 'url': 'https://www.lmonkey.com/t/XkyJ48eBe', 'author': '明明就晴天', 'time': '2020-05-28 22:16:28'}, {'title': 'Java程序開發入門筆記', 'url': 'https://www.lmonkey.com/t/OxLP07qLe', 'author': '明明就晴天', 'time': '2020-05-28 22:12:38'}, {'title': 'Java編譯過程', 'url': 'https://www.lmonkey.com/t/2QL7pvmBk', 'author': '??牛', 'time': '2020-05-18 13:07:53'}, {'title': '常用快捷鍵', 'url': 'https://www.lmonkey.com/t/7VEZYdoB3', 'author': '??牛', 'time': '2020-05-18 13:01:41'}, {'title': 'Java程序開發入門筆記', 'url': 'https://www.lmonkey.com/t/VDLeZlNBX', 'author': '??牛', 'time': '2020-05-18 12:57:07'}]

3)bs4-實戰猿圈-代碼優化

''' 分析爬取的數據 數據源地址:https://www.lmonkey.com/t 數據內容:文章標題、文章的鏈接、作者、發布時間 工具:python,requests,bs4 ''' import requests,json from bs4 import BeautifulSoup#封裝類 class Bs4Yq():#定義屬性#請求得urlurl = 'https://www.lmonkey.com/t'#請求頭headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36'}#響應源代碼的存放位置res = None#存儲解析后的json數據varlist = []#初始化方法def __init__(self):#發起一個請求res = requests.get(self.url,headers=self.headers)if res.status_code == 200:self.res_html = res.textif self.ParseData():self.WriteJson()print('請求成功,數據寫入文件')else:print("請求失敗")#解析html數據def ParseData(self):soup = BeautifulSoup(self.res_html, 'lxml')try:# 獲取頁面中所有的文章divs = soup.find_all('div', class_="list-group-item list-group-item-action p-06")for i in divs:r = i.find('div', class_="topic_title mb-0 lh-180")if r:# print(i.a['href'])# print(i.strong.a.text)# print(i.span['title'])vardict = {'title': r.text.split('\n')[0],'url': i.a['href'],'author': i.strong.a.text,'time': i.span['title']} # 將文本切分,只要第一個內容self.varlist.append(vardict)# print(varlist)return Trueexcept:return False#寫入json文件def WriteJson(self):if self.varlist != []:try:with open('./yq.json','w') as fp:json.dump(self.varlist,fp)return Trueexcept:return Falseelse:print('無法獲取當前解析的數據')Bs4Yq()

(三)爬蟲實戰之re正則表達式數據解析
1)re正則模塊的介紹

#正則表達式 re ''' 正則表達式,就是使用字符,轉義字符和特殊字符組成的一個規則. 使用這個規則對文本的內容完成一個搜索或匹配或替換的功能 正則表達式的組成:普通字符:大小寫字母,數字,符號...轉義字符:\w \W \d \D \s \S ...特殊字符:.* ? + ^ $ [] {} ()匹配模式:I U .... ''' #使用正則表達式進行匹配的基本語法 import re #定義字符串 vars = 'iloveyou521tosimda' #定義正則表達式 reg = '\d' #調用正則函數方法 res = re.findall(reg,vars) print(res) #運行結果:['5', '2', '1'] ''' 方式二: #定義字符串 vars = 'iloveyou521tosimda' #定義正則表達式 reg = '521' #調用正則函數方法 res = re.finditer(reg,vars) print(next(res)) #運行結果:<_sre.SRE_Match object; span=(8, 11), match='521'>方式三: #定義字符串 vars = 'iloveyou521tosimda' #定義正則表達式 reg = '521' #調用正則函數方法 res = re.findall(reg,vars) print(res) #運行結果:['521'] '''

2)re模塊的相關函數–match與search
如果string的開始位置能夠找到這個正則樣式的任意個匹配,就返回一個相應的匹配對象。如果不匹配,
就返回None ;注意它與零長度匹配是不同的。

#re模塊的相關函數其他函數--match與search ''' re.match()函數+從頭開始匹配+要么第一個就符合要求,要么不符合+匹配成功則返回match對象,否則返回None+可以使用group()方法獲取返回的數據+可以使用span()獲取 re.search()函數+從字符串開頭到結尾進行搜索式的匹配+匹配成功則返回search對象,否則返回None+可以使用group()方法獲取返回的數據+可以使用span()獲取search()與match()方法的區別:match()方法是從字符串的開頭進行匹配,如果開始就不符合正則的要求,則匹配失敗,返回Nonesearch()方法是從字符串的開始位置一直搜索到字符串的最后,如果整個字符串中都沒有匹配到,則失敗,返回Nonere.findall() re.finditer() re.sub()''' import re #定義字符串 vars = 'iloveyou521tosimda' ''' #調用正則match函數方法 #定義正則表達式 reg = 'ilove' #若輸入love則返回None res = re.match(reg,vars) # print(res) #運行結果<_sre.SRE_Match object; span=(0, 5), match='ilove'> #若想從結果中直接獲取字符串 print(res.group()) #獲取返回的數據結果 #運行結果ilove print(res.span()) #獲取匹配結果的下標區間 #運行結果(0, 5)截取到5之前的數據 '''#調用正則search函數方法 #定義正則表達式 reg = 'love' res = re.search(reg,vars) print(res) print(res.group()) print(res.span()) #運行結果 # <_sre.SRE_Match object; span=(1, 5), match='love'> # love # (1, 5)

3)re模塊相關函數

#re模塊相關函數--其他函數 ''' re.findall()+按照正則表達式的規則在字符串中匹配元素,結果返回一個列表,如果沒有找到則返回空列表re.finditer()+按照正則表達式的規則在字符中匹配所有符合的元素,返回一個迭代器 re.sub()搜索替換+按照正則表達式規則,在字符串中找到需要被替換的字符串,完成一個替換參數:pattern:正則表達式規則,匹配需要被替換的字符串repl:替換后的字符串string:被替換的原始字符串 compile()可以直接將正則表達式定義為正則對象,使用正則對象直接操作 ''' import re #定義字符串 varstr = 'iloveyou521tosimida511' #正則表達式 reg ='\d{3}' #函數調用 # res = re.findall(reg,varstr) res = re.finditer(reg,varstr) # print(list(res)) # print(res) # '''運行結果[<_sre.SRE_Match object; span=(8, 11), match='521'>, <_sre.SRE_Match object; span=(19, 22), match='511'>] # <callable_iterator object at 0x0000000002989CC0>'''''' reg ='\d{3}' 運行結果['5', '2', '1', '5', '1', '1'] reg ='\d{4}' 運行結果['521', '511'] reg ='\d{3}' res = re.finditer(reg,varstr) 運行結果<callable_iterator object at 0x00000000029D9CC0> '''#找到數字,替換成其它 # res = re.sub(reg,'AAA',varstr) # print(res)#直接定義正則表達式對象 reg = re.compile('\d{3}') #直接使用創建的正則對象,去調用對應的方法或者函數 res = reg.findall(string=varstr) # print(res)lines = ['i love 512 you','i love 521 you','i love 345 you','i love 543 you', ] reg = re.compile('\d{3}') for i in lines:# reg = '\d{3}'# res = re.search(reg,i)# print(res.group())res = reg.search(i).group()print(res) ''' 運行結果: 512 521 345 543 '''

4)re模塊–正則表達式的定義和規則

#re模塊--正則表達式的定義和規則 import re #普通字符 # vars = 'iloveyou' # reg = 'love' # res = re.search(reg,vars).group() # print(res) #運行結果:love#轉義字符\w \W \d \D \s \S.......... varstr = '2$_ilove5   21you' reg = '\w'#代表 單個  字母、數字、下劃線 reg = '\W'#代表 單個的 非字母、數字、下劃線 reg = '\d'#代表 單個的 數字 reg = '\D'#代表 單個的 非數字 reg = '\s'#代表 單個的 空格符或制表符 reg = '\S'#代表 單個的 非 空格符或制表符 reg = '\w\w\w\w\d'#組合使用#特殊字符 . * + ? {} () ^ $ varstr = 'hello WORLD 5211 iloveyou'reg = '.' # . 點 代表 單個的 任意字符 除了換行符之外 reg = '.*' # * 星 代表匹配次數 任意次數 '''*的特點:如果使用*號,那么在匹配開始處如果符合要求,則按照規則一直向后匹配,直道不符合匹配規則結束并把前面符合的數據返回如果使用*號,那么在匹配開始處如果不符合要求,則直接返回,匹配到的次數為0''' reg = '\w+' # + 代表匹配字數 至少要求匹配一次 reg = '\w+?'# ? 拒絕貪婪,就是前面的匹配規則只要達成則返回 reg = '\w+?' reg = '\w{4}'#{}代表匹配數字,{4}一個數字時,表示必須匹配的次數 reg = '\w{2,5}'#{}代表匹配數字,{2,5}兩個數字時,表示必須匹配的區間次數 reg = '[A-Z,a-z,0-9,]'#[]代表字符的范圍[A-Z,a-z,0-9,] = \w reg = '\w+(\d{4})' #()代表子組,括號中的表達式首先作為整個正則的一部分,另外會把符合小括號中的內容單獨提取一份varstr = '17610105211' #定義一個匹配手機號的正則表達式 reg = '^1\d{11}$' # ^ 代表開頭 $ 代表結尾res = re.search(reg,varstr).group() print(res,len(res)) #運行結果:i#正則模式 re.I不區分大小寫 vars = 'iLOVEyou' reg = reg.search(reg,vars,re.I) print(re)#練習題 #定義一個正則表達式,來驗證郵箱是否正確#+規定qq號碼必須是5~12位的數字,后面必須跟".com" #完善手機號的正則表達式 #定義一個匹配 IP 的正則表達式  192.168.1.1 255.255.255.0

5)正則實戰–猿來如此

'''數據源地址:https://www.lmonkey.com/ask數據字段:問題 時間 作者 url鏈接 ''' import requests,re,json #定義請求的url和請求頭信息 url = 'https://www.lmonkey.com/ask' headers = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36' } #2.發起請求 res = requests.get(url,headers=headers) #3.檢測請求是否成功 if res.status_code == 200:#4.獲取返回的數據res_html = res.text# with open('./res.html','w',encoding='utf-8') as fp:# fp.write(res_html)#5.進行數據解析#定義解析問題標題的正則reg = '<div class="topic_title mb-0 lh-180 ml-n2">(.*?)<small'#調用正則方法去獲取問題的標題titlelist = re.findall(reg,res_html)#定義解析作者的正則reg = '<strong>(.*?)</strong>'authorlist = re.findall(reg,res_html)# 定義解析問題的時間reg = '<span data-toggle="tooltip" data-placement="top" title="(.*?)">'datatime = re.findall(reg,res_html)#獲取文章的連接地址reg = '<a href="(https://www.lmonkey.com/ask/\d+)" target="_blank">'urllist = re.findall(reg,res_html)#壓縮數據#常規方法處理數據[{},{},{}]data = list(zip(titlelist,authorlist,datatime,urllist))# datalist = []# for i in data:# res = {'title':i[0],'url':i[1],'author':i[2],'datatime':i[3]}# datalist.append(res)# print(datalist)datalist = [{'title':i[0],'url':i[1],'author':i[2],'datatime':i[3]} for i in data]print(datalist)#數據入庫with open('./data.json','w',encoding='utf-8') as fp:json.dump(datalist,fp)

輸出的結果,用json在線解析及格式化驗證工具對其格式進行處理,顯示如下:
[
{
“title”:"【Java】You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘USER_ID=‘2’’ at line 1",
“url”:“輕風_N4zWcI”,
“author”:“2020-06-23 16:26:33”,
“datatime”:“https://www.lmonkey.com/ask/22985”
},
{
“title”:"【前端】為什么404代表找不到網址,404這個數字背后的邏輯是什么?",
“url”:“感覺_sp7aqM”,
“author”:“2020-06-20 21:29:36”,
“datatime”:“https://www.lmonkey.com/ask/22984”
},
{
“title”:"【PHP】使用User::create($input);進行添加數據,只有password字段添加成功了,而username是null。傳輸的有數據,不知道為什么,謝謝老師的解答。",
“url”:“雨季”,
“author”:“2020-05-25 15:12:05”,
“datatime”:“https://www.lmonkey.com/ask/22983”
},
{
“title”:"【前端】學習猿地的課程列表頁,怎么我在官網找不到?有老師用到的圖片素材嗎?",
“url”:"? 月",
“author”:“2020-05-20 22:30:35”,
“datatime”:“https://www.lmonkey.com/ask/22982”
},
{
“title”:"【Java】打開的軟件,是?",
“url”:“young先森”,
“author”:“2020-05-19 21:01:36”,
“datatime”:“https://www.lmonkey.com/ask/22981”
},
{
“title”:"【PHP】!DOCTYPE 標準是大寫還是小寫",
“url”:“ニック”,
“author”:“2020-05-18 23:04:01”,
“datatime”:“https://www.lmonkey.com/ask/22980”
},
{
“title”:"【PHP】什么時候會出thinkphp的內容?我看你們的課程介紹里面有才買的課程的",
“url”:“愛唯主機”,
“author”:“2020-05-10 10:44:40”,
“datatime”:“https://www.lmonkey.com/ask/22979”
},
{
“title”:"【Python】源碼哪里有",
“url”:“孫小兜”,
“author”:“2020-05-08 16:36:02”,
“datatime”:“https://www.lmonkey.com/ask/22978”
},
{
“title”:"【前端】不需要封裝函數去校驗獲取下一個兄弟節點的類型",
“url”:“Beyant”,
“author”:“2020-04-27 21:30:36”,
“datatime”:“https://www.lmonkey.com/ask/22977”
},
{
“title”:"【Java】課程一般吧",
“url”:“陽陽_sRAvEK”,
“author”:“2020-04-25 16:50:53”,
“datatime”:“https://www.lmonkey.com/ask/22976”
},
{
“title”:"【Java】課程一般吧",
“url”:“陽陽_sRAvEK”,
“author”:“2020-04-25 16:49:20”,
“datatime”:“https://www.lmonkey.com/ask/22975”
},
{
“title”:"【Java】Servlet.service() for servlet [com.shop.servlet.user.DoUserAdd] in context with path [/ShoppingProject] threw exception",
“url”:“pado”,
“author”:“2020-04-22 20:15:33”,
“datatime”:“https://www.lmonkey.com/ask/22974”
},
{
“title”:"【Java】根據老師步驟進行,最后跳轉顯示org.apache.catalina.connector.RequestFacade cannot be cast to javax.servlet.ServletResponse,這是什么原因呢?",
“url”:“顧你安穩”,
“author”:“2020-04-21 22:31:25”,
“datatime”:“https://www.lmonkey.com/ask/22973”
},
{
“title”:"【Java】老師的表單驗證好像寫錯了吧,有bug。如果其他數據都對,但是驗證碼那一項寫錯,表單照樣可以提交,并沒有阻止。是不是Ajax的異步造成的bug。",
“url”:“喜歡悠哉獨自在”,
“author”:“2020-04-20 18:41:47”,
“datatime”:“https://www.lmonkey.com/ask/22972”
},
{
“title”:"【Python】help,爬蟲豆瓣電影TOP250爬取電影名稱,導演,年份,鏈接–《初戀這件小事》的導演爬不下來,help",
“url”:“惠之吉”,
“author”:“2020-04-19 09:52:42”,
“datatime”:“https://www.lmonkey.com/ask/22971”
}
]

總結

以上是生活随笔為你收集整理的爬虫项目实战(二)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

国产成人av片 | 月下香电影 | 婷婷狠狠操 | 波多野结衣视频一区二区 | 国产精品国产亚洲精品看不卡15 | 国产精品久久99综合免费观看尤物 | 91亚洲精品久久久蜜桃网站 | 天天草天天色 | 在线观看岛国 | www.少妇 | 久久精品人人做人人综合老师 | 色夜视频 | 在线播放日韩 | 日韩色视频在线观看 | 国产亚洲婷婷免费 | 色播五月激情五月 | 最新av在线网址 | 婷婷激情综合网 | 国产aa精品| 青青河边草手机免费 | 狠狠干夜夜爽 | 中文字幕xxxx | 精品国产亚洲日本 | 天天干天天草 | 亚洲精品乱码白浆高清久久久久久 | 99欧美 | av成人动漫在线观看 | 热re99久久精品国产66热 | 97在线观视频免费观看 | 欧美日韩视频在线一区 | 久久伊人操 | 99高清视频有精品视频 | 黄色软件网站在线观看 | 五月综合激情婷婷 | 在线观看视频中文字幕 | 亚洲欧美在线视频免费 | 91丨九色丨国产丨porny精品 | 亚洲黄色在线 | 久久精品专区 | 深爱激情av | 热久久精品在线 | 久久国产精品99国产精 | 人人看人人 | 欧美精品亚洲精品日韩精品 | 伊人久久国产 | 亚洲成人频道 | 国产精成人品免费观看 | av超碰在线观看 | 九九九九热精品免费视频点播观看 | 久久久国产精品亚洲一区 | 欧美极品久久 | 激情网色 | 久久99亚洲网美利坚合众国 | 久久综合干 | 91麻豆精品国产91久久久久 | 免费人成在线观看网站 | 青青河边草免费观看完整版高清 | 成人免费一区二区三区在线观看 | 在线成人国产 | 欧美大香线蕉线伊人久久 | 婷婷色在线视频 | 美女视频黄的免费的 | 四季av综合网站 | 91福利免费 | 最近更新好看的中文字幕 | 成年人视频在线免费播放 | 国产99久久久国产 | 六月丁香在线观看 | 欧美日韩一区二区在线观看 | 久久久久久伊人 | 综合久久综合久久 | 久久精品—区二区三区 | 国产 亚洲 欧美 在线 | 中文字幕在线免费97 | 亚洲一区日韩在线 | 天天插综合 | 97精品国产97久久久久久春色 | 91免费视频网站在线观看 | 51久久成人国产精品麻豆 | www.夜色.com | 亚洲禁18久人片 | 超碰个人在线 | 中文在线a在线 | 热久久最新地址 | 最新av免费在线观看 | 福利一区在线视频 | 日产中文字幕 | 久久精品一区二区三区国产主播 | 丝袜制服天堂 | 精品国产伦一区二区三区观看体验 | 欧美极度另类性三渗透 | 国产精品毛片久久蜜 | 超碰97在线看 | 久久精彩视频 | 国内精品视频一区二区三区八戒 | 日韩精品一区二区三区第95 | 手机在线观看国产精品 | 99久免费精品视频在线观看 | 亚洲欧洲精品久久 | 天天爽综合网 | 国产小视频在线免费观看 | 一本一本久久a久久精品综合小说 | 免费中文字幕 | 91最新视频在线观看 | 欧美韩国在线 | 国产一二三四在线观看视频 | 天天操天天爱天天爽 | 欧美一性一交一乱 | 国产片免费在线观看视频 | 色综合久久88色综合天天人守婷 | 极品久久久久久久 | 在线观看深夜福利 | 97精品国产97久久久久久春色 | 国产精品一区二区久久精品 | 成人免费在线视频 | 国产亚洲视频中文字幕视频 | 中文亚洲欧美日韩 | 国产99久久久精品 | 欧美中文字幕第一页 | 一区二区观看 | 国产成人精品一区二三区 | 欧美激情视频一二区 | 成人av在线网 | 啪啪免费观看网站 | www黄com | 久久国产露脸精品国产 | 国产日韩三级 | 天天视频亚洲 | 日韩在线一区二区免费 | 精品一区二区免费在线观看 | 国产中文字幕免费 | 欧美精品一区在线发布 | 精品在线99| 亚洲国产欧美在线人成大黄瓜 | 天天干,狠狠干 | 激情一区二区三区欧美 | 国产视频中文字幕在线观看 | 天天干夜夜想 | 91在线国内视频 | 日韩黄色免费 | 免费在线日韩 | 亚洲精品在线观看不卡 | 国产日韩欧美在线 | 日日夜夜av| 在线免费视频你懂的 | 亚洲一区av | 97色免费视频 | 在线观看韩日电影免费 | 人人爱爱 | 国产精品久久久久一区二区 | 99热在线观看免费 | 亚洲女在线 | 亚洲高清av在线 | 97超碰在线人人 | 久久久久久久av | 国产精品久久毛片 | 中文字幕免费成人 | 在线国产能看的 | 亚洲精品国产精品国自产观看 | 亚洲精品国产区 | 伊人永久| 在线播放91 | 在线免费视频a | 久久精品精品 | 国模吧一区 | 高清av免费看 | 日韩在线观看高清 | 亚洲 欧美 综合 在线 精品 | 97超碰资源网 | 国产精品久久久久久影院 | 91九色国产视频 | 色av色av色av | 超碰av在线播放 | 国产一区二区三区午夜 | 999男人的天堂 | 99久久精品视频免费 | 免费看久久久 | 久操中文字幕在线观看 | 狠狠色2019综合网 | 亚洲欧洲成人精品av97 | 高潮久久久久久 | mm1313亚洲精品国产 | 日本特黄特色aaa大片免费 | 超碰在线98 | av片免费播放 | 最新日韩视频在线观看 | 国产精品理论视频 | 久久久综合精品 | 久久夜色精品国产欧美乱 | 色天堂在线视频 | www欧美色 | 欧美一区二区视频97 | 久久av免费电影 | 久久一区二区免费视频 | 午夜精品久久久久久久久久久 | a国产精品 | 久久综合婷婷国产二区高清 | 最近久乱中文字幕 | 久久精品美女视频网站 | 久 久久影院 | 人人草在线视频 | 亚洲自拍自偷 | av三级在线免费观看 | japanesexxxhd奶水| 欧美天天综合网 | 激情深爱 | 久久久国产精品人人片99精片欧美一 | 天天干天天玩天天操 | 日本中文字幕观看 | 黄色在线观看免费 | 国产高清专区 | 久久午夜电影院 | 国产在线播放不卡 | 欧美a视频在线观看 | 国产成本人视频在线观看 | 在线观看91av | 国产精品久久视频 | 7777xxxx| 五月天欧美精品 | 婷婷久久网 | 国产精品永久免费视频 | 亚洲国产欧美一区二区三区丁香婷 | 国产精品免费观看视频 | 亚洲欧美在线观看视频 | 99在线高清视频在线播放 | 午夜私人影院久久久久 | 久久色在线观看 | 久久国产精品久久w女人spa | 日日夜夜婷婷 | 精品国产区 | 日韩av中文在线观看 | 国产精品久久久久久久久久久免费看 | 天天草天天干 | 91九色视频导航 | 国产91区 | 超碰人人乐 | 激情五月激情综合网 | 又大又硬又黄又爽视频在线观看 | 国产二区免费视频 | 中文字幕综合在线 | 亚洲人天堂 | 五月精品 | 天天爱综合 | 亚洲人成免费网站 | 国产啊v在线 | 成人理论电影 | 久久久久激情 | 97视频免费播放 | 免费久草视频 | 深夜免费小视频 | 国产精品av在线 | 午夜视频免费在线观看 | 在线成人免费电影 | 久久综合五月天 | 久久久国产影院 | 午夜视频黄 | 亚洲综合网站在线观看 | 视频在线观看99 | 中文字幕色在线 | 成年人在线观看 | 欧美综合久久 | 中文字幕av日韩 | 日韩在线播放欧美字幕 | 亚洲黄色影院 | 婷婷精品国产欧美精品亚洲人人爽 | 精品毛片一区二区免费看 | 超碰97国产精品人人cao | 国内外成人免费在线视频 | www欧美色 | 亚洲 欧美 国产 va在线影院 | 久久综合免费视频 | 狠狠狠操 | 亚洲国产资源 | 在线免费观看一区二区三区 | 精品国产1区2区3区 国产欧美精品在线观看 | 精品在线二区 | 成年人黄色免费看 | 一区二区三区在线免费 | 91免费在线看片 | 在线欧美最极品的av | 毛片一级免费一级 | 狠狠干婷婷色 | 久久久久久国产精品999 | 五月婷婷综合色拍 | 国产精品久久久久久69 | 日韩av在线网站 | 色婷婷激情综合 | 天天草天天爽 | 美女视频是黄的免费观看 | 久草9视频| 91精品国产入口 | 免费黄在线观看 | 久久国产精品影视 | 日韩av电影国产 | 五月天狠狠操 | 丁香六月婷婷开心婷婷网 | 超碰在线97国产 | 久久久久久中文字幕 | 亚洲区视频在线 | 在线看黄网站 | 日日日操操 | 中文字幕在线观看第二页 | 干干干操操操 | 国产一在线精品一区在线观看 | 99产精品成人啪免费网站 | 色婷婷福利视频 | 国产 欧美 日产久久 | 91高清免费在线观看 | 国产精品久久精品 | 特级西西444www大胆高清无视频 | 成人午夜电影在线观看 | 狠狠色综合欧美激情 | 国产精久久久久久久 | 激情视频综合网 | 成人在线免费看视频 | 欧美日韩国产精品一区二区亚洲 | 99久久免费看 | 免费看的视频 | 九九热只有这里有精品 | av免费播放 | 成人四虎 | 日本精品久久久一区二区三区 | 美女亚洲精品 | 亚洲v欧美v国产v在线观看 | 男女全黄一级一级高潮免费看 | 欧美激情在线看 | 最新婷婷色 | 国产一级视频 | 亚洲国产av精品毛片鲁大师 | 久久久久久久影院 | 天天色综合三 | 在线观看av黄色 | 亚洲国产中文在线观看 | 国产一区免费在线观看 | 在线播放一区 | 偷拍福利视频一区二区三区 | 国产在线观看,日本 | 久久久久国产精品午夜一区 | 欧美大片第1页 | 国产成人精品一区二区三区 | 成人免费视频网址 | 国产精品a级 | 欧美日韩一区二区视频在线观看 | 中文字幕在线观看日本 | 午夜久久福利影院 | 日韩精品视频在线免费观看 | 欧美激情综合五月色丁香小说 | 欧美一区视频 | 在线视频麻豆 | 欧美日韩三级 | 夜色在线资源 | 香蕉视频91 | 日韩综合色 | 人人爱人人舔 | 国产美腿白丝袜足在线av | 五月天婷婷在线观看视频 | 亚洲精品国产拍在线 | 美女精品久久久 | 99久久久成人国产精品 | 国产精品99精品 | 亚洲一二三久久 | 日本少妇高清做爰视频 | 久草青青在线观看 | 精品影院一区二区久久久 | 亚洲美女在线国产 | 99久久99久久精品免费 | 99国产在线视频 | 少妇高潮冒白浆 | 国产一区二区在线免费观看 | 麻豆视频在线播放 | 国产糖心vlog在线观看 | 国产成人精品免高潮在线观看 | 亚洲最新av在线 | 亚洲成熟女人毛片在线 | 国产中文在线观看 | 综合网中文字幕 | 91精品国产91久久久久 | 久久另类视频 | 欧美激情第一页xxx 午夜性福利 | 亚洲无吗视频在线 | 亚洲女同ⅹxx女同tv | 91资源在线 | 99国产视频 | 国产精品乱码一区二区视频 | 亚洲一区尤物 | 亚洲 成人 欧美 | 三级性生活视频 | 99久久日韩精品免费热麻豆美女 | 日本不卡123 | 成人欧美日韩国产 | 999视频在线观看 | 天天做天天干 | 亚洲欧美成人综合 | 亚洲国产经典视频 | 国产在线中文字幕 | 日本久久电影网 | 在线观看色网 | av在线小说 | 日韩欧美电影 | 国产亚洲精品日韩在线tv黄 | 一本之道乱码区 | 天天操天天舔天天干 | 日韩a免费| 中文字幕色在线 | 免费在线看v | 国产成人精品一区二区三区在线 | 久久爱综合 | 国产一区精品在线观看 | 精品爱爱 | 在线观看视频国产一区 | 日日夜夜爱| 久草99| 亚洲午夜精品一区 | 中文在线中文a | 国产成人精品av在线 | 欧美日韩不卡一区二区 | 国产成人精品一区二区三区福利 | 久久一区二区免费视频 | 天天插狠狠干 | 婷婷射五月 | 成人一区电影 | 啪啪免费视频网站 | 欧美综合干 | 国产91亚洲| 99国内精品| 在线观看的a站 | 国产精品永久久久久久久久久 | 色综合久久88色综合天天 | 嫩小bbbb摸bbb摸bbb | 99精品久久久久久久 | 日韩电影久久久 | 中文字幕在线视频一区二区 | 亚洲精品美女 | 久精品视频在线 | 69久久夜色精品国产69 | 91久久奴性调教 | 国产精品区免费视频 | 麻豆精品在线视频 | 日韩资源在线 | 91尤物国产尤物福利在线播放 | 日日躁你夜夜躁你av蜜 | 久久精品一区二区国产 | 91av看片| 成年人黄色大全 | 欧美日韩在线视频一区 | 九九免费精品视频 | 婷婷亚洲激情 | 亚洲片在线资源 | 精品国产诱惑 | 四虎影视8848dvd | 五月婷婷.com| 高清中文字幕 | 色综合久久久网 | 97精品国产aⅴ | 波多野结衣一区二区 | 日本高清中文字幕有码在线 | 日日夜夜操av | 亚洲国产精彩中文乱码av | 激情 婷婷 | 亚洲精品乱码久久久久久蜜桃动漫 | 99在线观看免费视频精品观看 | 亚洲精品美女在线观看播放 | 免费观看日韩 | 日韩激情综合 | 欧美色图30p| 中文字幕免费高清在线 | 久久免费的视频 | 国产精品久99 | 91探花在线视频 | 97超碰.com| 天天鲁一鲁摸一摸爽一爽 | 亚洲欧洲一区二区在线观看 | 91精品一区国产高清在线gif | 日韩精品五月天 | 亚洲激情在线播放 | av资源网在线播放 | 久久久96 | 91久久在线观看 | 国产一级不卡视频 | 国产黄色精品在线 | 丁香婷婷深情五月亚洲 | 日韩视频图片 | 特级a毛片| 日韩精品视频在线观看网址 | 国产一卡二卡四卡国 | 丁香婷婷自拍 | 国产成人在线网站 | 成人午夜剧场在线观看 | 久久精品电影院 | 午夜国产一区 | 91大神在线观看视频 | 美女久久久久久久久久 | 亚洲v欧美v国产v在线观看 | bbbb操bbbb | 国产精品av在线免费观看 | 九九热在线视频免费观看 | 最新国产精品拍自在线播放 | 精品亚洲一区二区三区 | 日韩在线免费不卡 | 久久99国产精品视频 | 久久99久久99精品免观看软件 | av在线看网站 | 又黄又爽又无遮挡免费的网站 | 国产91精品看黄网站 | 欧美在线观看小视频 | 69国产精品视频 | 国产成人三级一区二区在线观看一 | 久久中文网 | av在线播放中文字幕 | 91麻豆精品国产 | 99久久精品免费看 | 天天射天天操天天色 | 丁香伊人网 | 婷婷激情网站 | 国产在线一线 | 人人草在线观看 | 麻豆国产在线播放 | 国产精品国内免费一区二区三区 | 黄免费在线观看 | 免费亚洲视频在线观看 | 在线天堂视频 | 午夜视频久久久 | 亚洲精品欧美专区 | 99免在线观看免费视频高清 | 九九九热精品免费视频观看网站 | 国产麻豆果冻传媒在线观看 | 亚洲精品综合一二三区在线观看 | 日本中文字幕在线视频 | 成人四虎影院 | 五月天久久久久久 | 久久综合狠狠综合久久激情 | 久久无码精品一区二区三区 | 免费97视频| www.亚洲视频| 亚洲精区二区三区四区麻豆 | 亚洲va欧美 | 成 人 黄 色视频免费播放 | 成人超碰97| 中文字幕av全部资源www中文字幕在线观看 | 操操综合 | 久久综合日| 国产黄在线| 日韩国产精品一区 | 国产成人精品综合 | 成人av影视观看 | 99久久精品国产欧美主题曲 | 中文字幕黄色网 | 久av在线| 国产亚洲成人精品 | 亚州国产精品 | 欧美日韩91 | 免费视频黄| 四虎影视成人永久免费观看亚洲欧美 | 成人a视频片观看免费 | 久久久精品久久日韩一区综合 | 在线电影日韩 | 天天做天天爱天天综合网 | 欧美一区二区视频97 | 青青草视频精品 | 九九精品视频在线 | 成人小视频在线播放 | av免费福利 | 免费看黄网站在线 | www.久艹 | 小草av在线播放 | 国产精品黄 | 91片黄在线观看动漫 | 亚洲色图激情文学 | 婷婷av网站 | 噜噜色官网 | 中日韩三级视频 | va视频在线观看 | 日韩欧美视频一区二区 | 在线免费av网 | 免费亚洲黄色 | 久久草| 久久少妇av| 婷婷夜夜| 在线观看福利网站 | 精品视频专区 | 久久一区二区三区日韩 | 婷婷激情五月综合 | 99久久久久成人国产免费 | 色婷婷中文 | 久久精品网站视频 | 99免在线观看免费视频高清 | 不卡的av在线播放 | 午夜少妇一区二区三区 | 国产精品剧情 | 国产精品毛片一区视频播不卡 | 麻豆久久久久久久 | 成人黄色在线播放 | 久久在线播放 | 国产精品久久久网站 | 96亚洲精品久久 | 国产日韩视频在线 | 91桃色在线播放 | 9999国产精品 | 国产精品成人自产拍在线观看 | 国产一级电影网 | 国产综合久久 | 51精品国自产在线 | 免费在线观看国产精品 | 在线视频 亚洲 | 久久久免费看 | 亚洲成av人片一区二区梦乃 | 亚洲免费在线视频 | 久久久三级视频 | 日韩精品中文字幕在线不卡尤物 | 欧美一级免费在线 | 欧美成人精品欧美一级乱黄 | 日韩精品久久久久久中文字幕8 | 99九九免费视频 | 激情综合六月 | 亚洲伊人成综合网 | 91久久久久久久一区二区 | 久久a热6| 欧美日韩国产一区二 | 久久精品播放 | 久久成人综合视频 | 在线播放亚洲激情 | 超碰97免费在线 | 久久人人做| 欧美激情综合五月色丁香小说 | 久久久久国产一区二区三区 | 狠狠色狠狠色综合日日92 | 国产不卡免费视频 | 狠狠狠综合 | 国产又粗又硬又爽视频 | 精品一二三区视频 | 99精品国产兔费观看久久99 | 麻豆视频国产在线观看 | 色婷婷综合视频在线观看 | 国产一级片毛片 | 激情丁香婷婷 | 久久成视频 | 天天摸天天操天天爽 | 午夜在线看 | 日韩一三区 | 91人人干| 日韩成人黄色 | 中文字幕成人一区 | 国产精品系列在线观看 | 欧美狠狠操 | 欧美精品天堂 | 久久久久久看片 | 在线国产一区二区 | 国产黄a三级三级 | 久久久精品国产一区二区 | 91麻豆精品国产91久久久久久 | 免费一区在线 | 久久久久久久久久毛片 | 久久久免费精品视频 | 久久视频精品在线观看 | 久久人人爽人人爽人人片 | 丁香在线观看完整电影视频 | 国产精品麻豆三级一区视频 | 91人人爽久久涩噜噜噜 | 久久人人爽爽 | 91精品久久久久久久久久久久久 | 久久伦理 | 亚洲成人黄色在线观看 | 日韩黄色一级电影 | 97在线观看免费观看高清 | 日韩高清在线不卡 | 日韩高清二区 | 成人免费观看视频大全 | 在线看免费 | 久久精品国产成人精品 | 国产精品成人一区二区三区吃奶 | 国产美女主播精品一区二区三区 | 久久精品国产第一区二区三区 | 亚州精品一二三区 | 麻豆va一区二区三区久久浪 | 成年一级片 | 日韩欧美网站 | 四虎国产 | 99精品在这里 | 日本激情中文字幕 | 久久av影院 | 久久精品老司机 | 国产一级片免费视频 | 在线免费精品视频 | 国产性xxxx| 日韩视频一区二区三区 | 天天操狠狠操夜夜操 | 国内精品视频在线 | 深爱激情综合 | 精品成人久久 | 国产精品18久久久久久vr | 亚洲激情五月 | 在线色吧| 深爱婷婷| 国产精品久久久久久久久久久久午夜片 | 国产一二三四在线视频 | 色综合久久久 | 国产无区一区二区三麻豆 | 国产精品美女999 | 日韩精品视频免费专区在线播放 | 免费亚洲精品视频 | 中文字幕成人av | 久久午夜色播影院免费高清 | 欧美一级爽| 国产一区二区免费在线观看 | 麻豆91在线观看 | 欧美一级日韩免费不卡 | 综合色综合色 | www91在线观看 | 国内精品久久影院 | 日韩视频免费在线观看 | 婷婷在线网站 | 欧美日韩亚洲在线观看 | 精品国产视频在线观看 | 黄色毛片观看 | 国产精品久久久久久久久久尿 | 久久艹艹 | 精品国产视频在线观看 | 亚洲精品视频一二三 | 97香蕉久久超级碰碰高清版 | 99爱精品视频 | 色婷av| 欧美在线日韩在线 | 亚洲精品美女久久久久网站 | 久草在线免费看视频 | 欧美色道 | www黄在线| 超碰97中文 | 亚洲欧美成aⅴ人在线观看 四虎在线观看 | 亚洲精品人人 | 久久国产精品视频观看 | 欧美色综合久久 | 欧美大片在线看免费观看 | 日日干 天天干 | 最新av在线网站 | 欧美激情奇米色 | 在线成人小视频 | 色综合久久久久综合体 | 国产精品久久久久久久久久久免费看 | 久草在线一免费新视频 | 国产综合激情 | 日韩在线看片 | 久久夜色精品国产欧美乱 | 国产精品福利av | 国产午夜精品一区 | 91色偷偷 | 在线天堂日本 | 国产在线精品一区二区不卡了 | 韩日三级av | 国产成人精品在线观看 | 91入口在线观看 | 深夜免费小视频 | 国产91综合一区在线观看 | 亚洲女欲精品久久久久久久18 | 国产精品久久久久久久久大全 | 亚洲欧洲视频 | 成人小电影在线看 | 免费av观看| 亚洲精品激情 | 在线视频 亚洲 | 国产女做a爱免费视频 | 亚洲视频资源在线 | 久久国产精品一二三区 | 国产香蕉97碰碰碰视频在线观看 | av免费高清观看 | 亚洲精品综合一区二区 | 91激情视频在线 | www一起操| 午夜12点 | 亚洲综合成人专区片 | 超碰在线官网 | 天天射天天操天天干 | 最近中文字幕免费av | 国产96在线观看 | 西西www4444大胆在线 | 精品欧美一区二区在线观看 | 久草在线观看视频免费 | 五月婷婷在线播放 | 成人黄色电影视频 | 日本在线观看视频一区 | 精品在线视频播放 | 久久免费国产精品1 | 日韩高清一区二区 | av综合站 | av高清一区二区三区 | 国产亚洲人成网站在线观看 | 天天色天天上天天操 | 97成人在线观看视频 | 国产在线一区二区 | 一区二区精品在线观看 | 久久精品一级片 | 亚洲成a人片在线观看网站口工 | 欧美日韩成人 | 看毛片网站 | 99热精品免费观看 | 中文字幕在线视频一区二区三区 | 久久av免费| 91在线视频观看免费 | 69视频网站 | 91成人短视频在线观看 | 在线看成人 | 久久成人人人人精品欧 | 中文字幕高清有码 | 91理论电影 | 中文字幕资源网 国产 | 国产高清免费在线观看 | 99久久精品国产一区二区三区 | 亚洲伦理中文字幕 | 91人人视频在线观看 | 色综合天天在线 | 亚洲不卡在线 | 欧美另类高清 videos | 五月婷婷久 | 九九热免费在线观看 | 91福利社区在线观看 | 日韩高清免费在线 | 日韩成人精品在线观看 | 色婷婷六月 | 看国产黄色片 | 国产精品岛国久久久久久久久红粉 | 在线观看视频亚洲 | 成人av在线亚洲 | 婷婷深爱 | 特黄特色特刺激视频免费播放 | 国产精品视频免费观看 | 国产原创在线 | 激情网站免费观看 | 97av超碰| 在线va网站 | 欧美a级片免费看 | 精品一区电影 | 国产在线免费av | 日本久久高清视频 | 91精品国产92久久久久 | 东方av在线免费观看 | 在线免费观看麻豆 | 91精品视频在线看 | 99久久精品免费看国产麻豆 | www国产一区| 久久久久国产一区二区三区 | 人人澡人人爽 | 免费色婷婷 | 欧美在线观看视频一区二区 | 国产精品免费久久久久久久久久中文 | 国产成人一区二区三区在线观看 | 91最新在线视频 | 国产精品96久久久久久吹潮 | 欧美日韩视频观看 | 一区二区三区在线观看免费视频 | 日韩69av| 久久综合久久综合这里只有精品 | av黄色在线播放 | 色5月婷婷 | 日韩精品无码一区二区三区 | 国产美女视频免费观看的网站 | 日日爽日日操 | 天干啦夜天干天干在线线 | 精品产品国产在线不卡 | 婷婷黄色片 | 国产日本高清 | 99精品在线免费视频 | 日韩在线色视频 | 99 久久久久 | 男女拍拍免费视频 | 97精品国自产拍在线观看 | 亚洲精品午夜国产va久久成人 | 狠色在线| 中文字幕无吗 | 国产亚洲精品无 | 久久一线 | 久久这里只有精品视频首页 | 天天操狠狠操网站 | 久久精品一二三区白丝高潮 | 欧美亚洲免费在线一区 | 免费黄色av.| 中文国产字幕 | 亚洲精品乱码久久久久久 | 久草视频在 | 视频一区视频二区在线观看 | 香蕉视频免费在线播放 | 午夜久久久久久久 | 天天草综合| 久久观看| 狠狠狠干 | 欧美一区二区三区免费看 | 成人黄色电影免费观看 | 国产精品一区在线观看你懂的 | 97操操操| 国产精品高清在线 | 成人全视频免费观看在线看 | 7799av| 97超碰在线久草超碰在线观看 | 亚洲国产中文字幕 | 午夜av激情| 天天干天天综合 | 天堂av在线7 | 亚洲一级免费电影 | 免费黄色网止 | 日韩在线观看三区 | 在线观看91av | 成人黄色av网站 | 国产高清免费视频 | 国产特级毛片 | 日本激情视频中文字幕 | 欧美在线视频精品 | 精品久久久精品 | japanesexxx乱女另类 | 夜夜骑天天操 | 少妇性bbb搡bbb爽爽爽欧美 | 欧美极品xxxx | 97电影院网| 99国产精品久久久久久久久久 | 激情五月婷婷综合 | 日韩av影视在线观看 | 久久久国产网站 | 中文字幕 91 | 国产午夜精品av一区二区 | 久久视频免费 | 激情影音| 久久91网| 91最新在线视频 | 日韩欧美一区二区三区在线观看 | 高清av影院 | 日韩美精品视频 | 在线免费观看视频你懂的 | 四虎成人精品在永久免费 | 狠狠搞,com | 色永久免费视频 | 成人黄色短片 | 日韩欧美国产激情在线播放 | 日韩理论在线视频 | 欧美日韩高清免费 | 色资源中文字幕 | 国产日产精品一区二区三区四区 | 麻豆视频免费在线 | 天天射天天干天天爽 | 精品国产一区二区三区久久久蜜臀 | 国产在线a视频 | 日韩视频在线播放 | 欧美日韩在线免费观看 | 国产精品久久久久9999吃药 | 色94色欧美| 免费网站观看www在线观看 | 久久99亚洲精品久久 | 黄色在线观看网站 | 亚洲视频高清 | 五月色丁香 | 免费a一级| www免费网站在线观看 | 免费的成人av | 国产片免费在线观看视频 | 久久久国内精品 | 欧美一级片 | 91在线欧美 | 久久国产免费视频 | 欧洲一区二区在线观看 | 五月婷丁香 | 91福利社在线观看 | 色天天久久 | 国产伦精品一区二区三区… | v片在线看 | 最新av中文字幕 | 日日操天天操狠狠操 | 人人爽人人爽人人片av | 91在线视频免费观看 | 在线成人性视频 | 五月天综合网站 | 色丁香婷婷 | 久久久综合九色合综国产精品 | www.夜夜夜| av中文字幕在线免费观看 | 国产精品精品久久久久久 | 精品国产一二三四区 | 超碰97在线看 | 国产亚洲片 | 成年人视频在线免费 | 日韩电影一区二区在线观看 | 国产一区免费观看 | 99视频一区二区 | 特黄特黄的视频 | 国产在线精品播放 | 国产aa免费视频 | 黄色av在| 三日本三级少妇三级99 | a在线一区 | 四虎在线视频 | 欧美一级片 | 日本丶国产丶欧美色综合 | 日日操操 | 中文字幕免费在线 | 久久国产片 | 国产原创在线 | 国产91在线 | 美洲 | 日韩一级片网址 | 99久精品| 免费中文字幕在线观看 | 91av电影在线 | 三级av中文字幕 | 精品国产免费久久 |