在上周之前,我從未聽過爬蟲,甚至連爬蟲兩個字怎麼寫都不知道,但是在這幾天的學習下,漸漸對爬蟲也有瞭一點認識,也可以寫點簡單的代碼,以下是我在趕集網爬在出售的狗狗的信息,有什麼問題,也希望有大神能給予指導,謝謝
# -*-encoding:'utf-8'-*-
# 爬取趕集網售狗信息
import requests
from lxml import etree
import time
import csv
import random
from pip._vendor.msgpack.fallback import newlist_hint
def spider():
headers={'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36'}
prefix_url='【西安寵物狗_西安寵物狗市場_寵物狗價格及圖片】-西安趕集網'
for i in range(1,2):
# 拼出完整的url
url=prefix_url+str(i)
# print(url)
# 偽裝成瀏覽器,獲取頁面
html=requests.get(url,headers=headers)
# 獲取selector,對text文件使用etree.HTML(html)進行解析
selector=etree.HTML(html.text)
# 獲取狗的列表
dog_list = selector.xpath('//*[@id="wrapper"]/div[4]/div[12]/dl')
# print(dog_list)
for dog in dog_list:
title=dog.xpath('dt/div[2]/p/a/text()')[0]
sex_age=dog.xpath('dt/div[2]/div/p/text()')[0]
price=dog.xpath('dd[2]/span/text()')[0]
shijian=dog.xpath('dd[1]/text()')[0]
print(title,sex_age,price,shijian)
# 保存狗的信息
item=[title,sex_age,price,shijian]
data_write(item)
# 每爬一次休息1-2秒
time.sleep(random.randint(1,2))
# 定義保存文件
def data_write(item):
with open('dog.csv','a',encoding='utf-8',newline='')as file:
writer=csv.writer(file)
writer.writerow(item)
# 定義主函數
if __name__=='__main__':
spider()
perfix_url 原本是一個網址,但是寫到這裡不知道為什麼自動變成瞭漢字超鏈接,大傢知道是網址就行瞭。這次的代碼就這樣,等我下次再學到一個新的技能的時候,我再跟大傢分享哦