當前位置:
首頁 >
python爬取糗事百科
發布時間:2024/4/11
28
豆豆
生活随笔
收集整理的這篇文章主要介紹了
python爬取糗事百科
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
本次要爬取的是糗事百科,地址如下:http://www.qiushibaike.com/8hr/page/1
1.思路分析:
url地址的規律非常明顯,一共只有13頁url地址
2.確定數據的位置
數據都在id='content-left’的div下的div中,在這個區域,url地址對應的響應和elements相同
3.糗事百科代碼實現
import requests from lxml import etree import timeclass QiuBai:def __init__(self):self.temp_url = "http://www.qiushibaike.com/8hr/page/{}"self.headers = {"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.139 Safari/537.36"}def get_url_list(self):'''準備url地址的劉表'''return [self.temp_url.format(i) for i in range(1,14)]def parse_url(self,url):'''發送請求,獲取響應'''response = requests.get(url,headers=self.headers)return response.content.decode()def get_content_list(self,html_str):'''提取數據'''html = etree.HTML(html_str)div_list = html.xpath("//div[@id='content-left']/div")content_list = []for div in div_list:item = {}item["user_name"] = div.xpath(".//h2/text()")[0].strip()item["content"] = [i.strip() for i in div.xpath(".//div[@class='content']/span/text()")]content_list.append(item)return content_listdef save_content_list(self,content_list): '''保存'''for content in content_list:print(content)def run(self):#實現做主要邏輯#1. 準備url列表url_list = self.get_url_list()#2. 遍歷發送請求,獲取響應for url in url_list:html_str = self.parse_url(url)#3. 提取數據content_list = self.get_content_list(html_str)#4. 保存self.save_content_list(content_list)if __name__ == '__main__':t1 = time.time()qiubai = QiuBai()qiubai.run()print("total cost:",time.time()-t1)總結
以上是生活随笔為你收集整理的python爬取糗事百科的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python OS和shutil模块的常
- 下一篇: python中lxml模块的使用