python爬虫requests源码链家_Python爬虫之---爬链家
一個簡單的實例,可以采用。做的demo。
#!/usr/bin/python
# -*- coding: utf-8 -*-
# @Time : 2020/6/4 15:55
# @Author : Xuegod Teacher For
# @File : 01_get_price_test.py
# @Software: PyCharm
'''
第一步:下載所有的html
第二步:利用xpath爬取匹配
第三步:保存到mongodb數據庫中
'''
import requests #pip install requests
from lxml import etree # pip install lxml
#模擬瀏覽器的版本信息,python 腳本 模擬瀏覽器
#pip install fake-useragent
from fake_useragent import UserAgent
import pymongo #pip install
IP = '127.0.0.1'
PORT = 27017
Name = 'sun'
client = pymongo.MongoClient(IP,PORT)
db = client.sun
collection = db.lanjia
#模擬瀏覽器的頭部信息
headers = {
"User-Agent":UserAgent().random
}
base_url = 'https://bj.lianjia.com/ershoufang/pg{}/'
#todo:下載整個網頁的html
def load_page(url):
'''
:param url: 頁面的url地址
:return: HTML界面
'''
try:
response = requests.get(url,headers=headers)
if response.status_code == 200:
print('頁面響應成功')
#返回整體的html文本str類型
return response.text
except:
print('網絡請求錯誤')
#todo:提取我想要的數據
def parse_html(html):
'''
:param html: 整體的html界面
:return: 數據。title和price
'''
#把具體的str類型的文本辦成xpath可匹配的文本
xpath_content = etree.HTML(html)
#一個界面中的30條數據list
xpath_datas = xpath_content.xpath('//*[@class="info clear"]')
for data in xpath_datas:
try:
title = data.xpath('./div[1]/a/text()')
price = data.xpath('./div[6]/div/span/text()')
#list 是可以相加的python是強類型語言
#【titl,價格,每平方價格】
data = title + price
insert_mongo(data)
except:
#停止本次循環開始下次循環
continue
def insert_mongo(data):
collection.insert_one({
'name':data[0],
'price':data[1]+'萬'
})
#多個頁面數據下載
def main():
for i in range(1,10):
url = base_url.format(i)
html = load_page(url)
parse_html(html)
if __name__ == '__main__':
main()
有疑問可以進行評論~
總結
以上是生活随笔為你收集整理的python爬虫requests源码链家_Python爬虫之---爬链家的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 解压android img文件怎么打开,
- 下一篇: stm32 ucosii消息队列 串口_