【Python】从0开始写爬虫——扒狗东先流产了
生活随笔
收集整理的這篇文章主要介紹了
【Python】从0开始写爬虫——扒狗东先流产了
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
上回寫到一半臨時有事,竟然沒有保存到!!!。這幾天也是因為家人過來玩。。我也不知道寫到哪兒了。我發現狗東這個奸賊很多數據是請求請求再請求,然后才拿到我們看到的數據顯示上去的。我嘗試了一下找齊這個數據確實有點頭疼(我有查到可以用一個東西模擬瀏覽器去得到我們最終的頁面,但是本著練習為主的思想,先不搞這么無腦的東西)。
所以我們暫時先戰略性放棄扒狗東。容我再找個好扒一點網站。下面是現在的代碼。
?
這里給出一個BeautifulSoup的文檔鏈接,是中文的,很好懂:?BeautifulSoup中文文檔
emmmm我們先上京東找個好看的模特:? 戀裳蒂莎2018夏季夜場小女人性感后開叉包臀連衣裙緊身誘人主播超短裙 黑色 S
?
根據我現在的代碼,我應該是封裝了一下之前的代碼,然后已經爬了商品的id、名稱和類目。
目錄。我不太懂規范的python項目是什么樣的。我是在test目錄下中測試一些第三方庫的api
?
app.py
import urllib.request from bs4 import BeautifulSoupheader = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36' }# 因為有時候得到的是一段 json 或者別的數據,有時候是html,所以我們單純地先獲取數據 def get_data(url, headers=header, charset="utf-8"):req = urllib.request.Request(url=url, headers=headers)rep = urllib.request.urlopen(req)data = rep.read()return data.decode(encoding=charset)# 如果是個html我們就可以用BeautifulSoup解析 def get_soup(url, headers=header, charset="utf-8"):data = get_data(url=url, headers=headers, charset=charset)return BeautifulSoup(data, "html.parser")?
jd.py
from scrapy import app import reheader = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36'# 'Referer': 'https://item.jd.com/10671563387.html' }url = "https://item.jd.com/27934623028.html" soup = app.get_soup(url, header, "gbk") # 獲取BeautifulSoup對象 pid = re.search("[0-9]+", url).group() # 用正則篩選id print("商品id:", pid)title = soup.find("div", class_="sku-name").string.strip() # 爬商品名稱 print("商品名稱:", title)page_config = soup.find("script", {"charset": "gbk"}).string cat = re.search("(?<=cat:\s\[)[,0-9]*(?=\])", page_config).group() # 用正則匹配到商品類目 print("category: ", cat)?
控制臺輸出。說明是可以爬到這些的
?
轉載于:https://www.cnblogs.com/yeyeck/p/9439061.html
總結
以上是生活随笔為你收集整理的【Python】从0开始写爬虫——扒狗东先流产了的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CPU 硬盘性能到底相差多少
- 下一篇: Python和Java就业前景对比