python网络爬虫_一篇文章教会你利用Python网络爬虫获取穷游攻略
點擊上方“IT共享之家”,進行關注
回復“資料”可獲贈Python學習福利
【一、項目背景】
??? 窮游網提供原創實用的出境游旅行指南、攻略,旅行社區和問答交流平臺,以及智能的旅行規劃解決方案,同時提供簽證、保險、機票、酒店預訂、租車等在線增值服務。窮游“鼓勵和幫助中國旅行者以自己的視角和方式體驗世界”。
????今天教大家獲取窮游網的城市信息,使用Python將數據寫入csv文檔。
【二、項目目標】
????實現將獲取對應的城市、圖片鏈接、熱點、批量下載 保存csv文檔。
【三、涉及的庫和網站】
1、網址如下:
https://place.qyer.com/south-korea/citylist-0-0-{}2、涉及的庫:requests、lxml、fake_useragent、time、csv
【四、項目分析】
????首先需要解決如何對下一頁的網址進行請求的問題。可以點擊下一頁的按鈕,觀察到網站的變化分別如下所示:
- https://place.qyer.com/south-korea/citylist-0-0-1- https://place.qyer.com/south-korea/citylist-0-0-2- https://place.qyer.com/south-korea/citylist-0-0-3????觀察到只有citylist-0-0-{}/變化,變化的部分用{}代替,再用for循環遍歷這網址,實現多個網址請求。
【五、項目實施】
1、我們定義一個class類繼承object,然后定義init方法繼承self,再定義一個主函數main繼承self。準備url地址。
import requests,osfrom lxml import etreeimport randomimport timefrom fake_useragent import UserAgentclass Travel(object): def __init__(self): self.url = "https://place.qyer.com/south-korea/citylist-0-0-{}/" def main(self): passif __name__ == '__main__': spider= Travel() spider.main()
2、隨機產生UserAgent。
self.film_list = [] ua = UserAgent(verify_ssl=False) for i in range(1, 50): self.film_list.append(ua.chrome) self.Hostreferer = { 'User-Agent': random.choice(self.film_list) }3、多頁請求。
startPage = int(input("起始頁:")) endPage = int(input("終止頁:")) for page in range(startPage, endPage + 1): url = self.url.format(page)4、定義get_page方法,進行數據請求。
'''數據請求''' def get_page(self, url): html = requests.get(url=url, headers=self.Hostreferer).content.decode("utf-8") self.page_page(html) # print(html)//網頁 # print(self.headers)//構造頭5、定義page_page,xpath解析數據, for循環遍歷數組。
在谷歌瀏覽器上,右鍵選擇開發者工具或者按F12。右鍵檢查,xpath找到對應信息的字段。如下圖所示。
parse_html = etree.HTML(html) image_src_list = parse_html.xpath('//ul[@class="plcCitylist"]/li') for i in image_src_list: b = i.xpath('.//h3//a/text()')[0].strip() c = i.xpath('.//p[@class="beento"]//text()')[0].strip() d = i.xpath('.//p[@class="pics"]//img//@src')[0].strip()6、定義csv文件保存數據,寫入文檔。
# 創建csv文件進行寫入 csv_file = open('scrape.csv', 'a', encoding='gbk') csv_writer = csv.writer(csv_file) csv_writer.writerow([b, c, d]) csv_file.close(7、在main方法調用。
def main(self): for i1 in range(1, 25): url = self.url.format(i1) # print(url) html = self.get_page(url) time.sleep(2) print("第%d頁" % i1)8、time模塊,設置時間延遲。
time.sleep(2)【六、效果展示】
1、點擊運行,輸入起始頁,終止頁。
2、將下載成功信息顯示在控制臺。
3、保存csv文檔。
【七、總結】
??? 1、不建議抓取太多數據,容易對服務器造成負載,淺嘗輒止即可。
??? 2、希望通過這個項目,能夠幫助大家對csv文檔處理有進一步的了解。
??? 3、本文基于Python網絡爬蟲,利用爬蟲庫,實現窮游網的獲取。實現的時候,總會有各種各樣的問題,切勿眼高手低,勤動手,才可以理解的更加深刻。
??? 4、可以根據自己的需要選擇自己的喜歡的城市獲取自己想要的有效信息 。
????5、需要本文源碼的小伙伴,后臺回復“窮游攻略”四個字,即可獲取。
看完本文有收獲?請轉發分享給更多的人
IT共享之家
入群請在微信后臺回復【入群】
-------------------?End?-------------------
往期精彩文章推薦:
一篇文章教會你用Python抓取抖音app熱點數據
一篇文章教會你使用Python定時抓取微博評論
手把手教你使用Python抓取QQ音樂數據(第四彈)
總結
以上是生活随笔為你收集整理的python网络爬虫_一篇文章教会你利用Python网络爬虫获取穷游攻略的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [最新答案V0.4版]微软等数据结构+算
- 下一篇: 《About Multi-Touch(多