python基础课程4(看代码看注释)--爬虫爬取网页信息
生活随笔
收集整理的這篇文章主要介紹了
python基础课程4(看代码看注释)--爬虫爬取网页信息
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
#主要用的python庫:安裝必要的庫requests:用來獲取頁面信息; BeautifulSoup:用來獲取頁面結構的詳細信息
#先獲取鏈接,再到一個列表,進入標簽,然后到class。。。。。就可以了(省略)
#安裝
import requests
from bs4 import BeautifulSoup
url = "https://hz.lianjia.com/zufang/"
responce=requests.get(url)#獲取到頁面信息200,頁面信息存儲在text中
#查看頁面信息存儲位置,response.text
responce.text
soup = BeautifulSoup(responce.text,'lxml')#解析使用lxml格式的文本存儲,使文本結構化了
links_div=('div',class_="pic-panel")##class加下劃線是因為class是python里的關鍵字,此class非彼class
#從列表框里生成另一個列表推導式,利用列表生成式
links =[div.a.get('herf') for div in links_div]
print(links,len(links))##30個鏈接,訪問這些鏈接可以得到詳細的租房信息
#links_div[1].a.get('herf')##僅僅提取了這個鏈接就夠了
##上述代碼封裝成函數,名字為get_links,作用為獲取下邊所有租房頁面的鏈接,返回一個鏈接列表##封裝:獲取url頁面下的內容,返回soup對象
def get_page(url):responce = request.get(url)soup = BeautifulSoup(responce.text, 'lxml')return soupdef get_links(link_url):#responce = requests.get(url) # 獲取到頁面信息200,頁面信息存儲在text中。已封裝成上述函數#soup = BeautifulSoup(responce.text, 'lxml') # 解析使用lxml格式的文本存儲,使文本結構化了。已封裝成上述函數#調用上述替代上邊注釋掉的兩行的函數soup=get_page(link_url)links_div = soup.find_all('div',class_='pic-panel')links=[links_div.a.get('herf') for div in links_div]return linkslinks_url="https://hz.lianjia.com/zufang/"get_links(links_url)def get_huose_info(huose_url)huose_url = "https://hz.lianjia.com/zufang/103102641328.html"#responce = request.get(hour_url)#soup = BeautifulSoup(responce.text,'lxml')#調用函數soup=get_page(huose_url)price=soup.find('span',class_="total").text##直接把價格4500獲取出來unit=soup.find('span',class_="unit").textunit.str()#str函數字符轉換工具house_info=soup.find_all('p')#('p',class='if')area=huose_info[0].text[3:]#切片工具切片掉標題:面積:layout=huose_info[1].text[5:]floor=huose_info[2].text[3:]direction = house_info[3].text[5:]##地鐵沒有class,說明在獲取huose_info時class時多余的train=huose[4].text[3:]#構建一個字典info={'面積':area,'價格':price}
封裝數據庫
DATABASE= {'host':127.0.0.1,'database':'Examination','user':'root','password':'yuping','charset':utf8mb4}
def get_db(setting):return MySQLdb.connect(**settings)
def insert(house_info):values = "'{}'"*11+"'{}'"sql_values = values.format(huose['價格'],huose['面積'],huose['價格'])sql = '''insert into 'huose'('price','unit','area')values({},)'''.format(sql_values)cursor = db.cursor()cursor.execute(sql)db.commit()
huose = get_huose_info('https://hz.lianjia.com/zufang/103102641328.html')
db = get_db(DATABASE)
insert(db,huose)
for link in links:time.sleep(2)##為了防止訪問時間太長加上時間限制print("獲取一個房子信息時間成功")huose = get_huose_info(link)insert(db,huose)
總結
以上是生活随笔為你收集整理的python基础课程4(看代码看注释)--爬虫爬取网页信息的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 微型计算机方面的论文,微型计算机论文.d
- 下一篇: Python小白的数学建模课-03.线性