1. 程式人生 > 實用技巧 >Ladon for PowerShell遠端載入教程

Ladon for PowerShell遠端載入教程

1、爬取鏈家二手房資訊,存入資料庫(MySQL)資料來源:鏈家

2、資料庫表結構

3、程式碼

'''使用面向物件的方式,搭建專案框架'''
import requests
from bs4 import BeautifulSoup
import pymysql
class LianJiaSpider():
    mydb = pymysql.connect("localhost", "root", "123456", "pythontest", charset='utf8')
    mycursor = mydb.cursor()
    #初始化
    def __init__
(self): self.url='https://bj.lianjia.com/chengjiao/pg{0}/'#初始化請求的url #將其偽裝成瀏覽器,對付反爬的 self.headers={'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36'} #傳送請求的方法 def send_request(self,url): resp=requests.get(url,headers=self.headers)
if resp.status_code==200: return resp #解析html獲取有用的資料 def parse_content(self,resp): html=resp.text bs=BeautifulSoup(html,'html.parser')#第一個引數是要解析的內容,第二個引數是解析器 #查詢自己想要的內容 ul=bs.find('ul',class_='listContent') #在劜中獲取所有的li li_list=ul.find_all('
li') #遍歷 lst=[] for item in li_list: title=item.find('div',class_='title').text#標題 house_info=item.find('div',class_='houseInfo').text#房屋描述 deal_date=item.find('div',class_='dealData')#成交的日期 total_price=item.find('div',class_='totalPrice').text#總價 position_info=item.find('div',class_='positionInfo').text#樓層資訊 unit_price=item.find('div',class_='unitPrice').text#單價 span_list = item.find_all('span') # 獲取掛牌價和成交週期 agent_name = item.find('a', class_='agent_name').text # 銷售 lst.append((title,house_info,deal_date,total_price,position_info,unit_price,span_list[0].text,span_list[1].text,agent_name)) #資料解析完畢,需要儲存到資料庫 self.write_mysql(lst) def write_mysql(self,lst): sql_cixian = "INSERT INTO ershoufang values (0,%s,%s,%s,%s,%s,%s,%s,%s,%s)" self.mycursor.executemany(sql_cixian, lst) self.mydb.commit() print('新增成功') self.mydb.close() #寫入資料庫 def write_mysal(self): pass #啟動爬蟲程式 def start(self): for i in range(1,2): full_url=self.url.format(i) resp=self.send_request(full_url)#傳送請求 if resp: self.parse_content(resp)#傳入資料 if __name__=='__main__': #建立類的物件 lianjia=LianJiaSpider() lianjia.start()
lianjia.py

4、結果