Re Selenium新手爬取貓眼Top 100

2021-08-11 20:35:08 字數 1682 閱讀 3861

from selenium import  webdriver#引入瀏覽器物件

from selenium.webdriver.common.by import by

from selenium.webdriver.common.keys import keys

from selenium.webdriver.support import expected_conditions as ec

from selenium.webdriver.support.wait import webdriverwait

from selenium.webdriver import actionchains#互動動作,如拖拽

import time

from multiprocessing import pool

import re

import json

defget_one_page

(url):

#得到網頁源**

try:

browser.get(url)

return browser.page_source

finally:

browser.close()

defparse_one_page

(html):

pattern = re.compile('.*?board-index.*?>(\d+).*?data-src="(.*?)".*?name">+'.*?>(.*?).*?star">(.*?)

.*?releasetime">(.*?)

' +'.*?integer">(.*?).*?fraction">(.*?).*?',re.s)#匹配正規表示式

items=re.findall(pattern,html)

for item in items:#yield的用法,函式生成器的用法

yield

defwrite_to_file

(content):

with open('c:/users/張啟航/desktop/res.txt','a',encoding='utf-8') as f:

f.write(json.dumps(content,ensure_ascii=false)+'\n')# dumps是將字典(dict)格式轉化成字串(str)格式

f.close()

defmain

(offset):

#對單個給定offset的網頁進行讀取

url = ''+str(offset)

print(url)#測試**輸出是否正確

the_source=get_one_page(url)

for item in parse_one_page(the_source):

write_to_file(item)

if __name__=='__main__':

pool=pool()#引入程序池,加快程式

pool.map(main,[i*10

for i in range(10)])

主要有幾個部分,因為python是大一學的,而且學的很水,所以不紮實,比如.format和yield(函式生成器),另外json之前也沒接觸過。寫完這篇之後,我會把這三個點重新寫一下,當作積累。在學習爬蟲之餘順便把python有意思的地方再來一遍。

爬取天貓top100

encoding utf 8 import requests import re import json from multiprocessing import pool 多執行緒模組 獲取網頁源 def get one page url 新增頭資訊 html requests.get url,he...

利用Jsoup爬取天貓列表頁資料

由於技術有限天貓詳細頁的銷售資料爬取不到,所以採用折中的方法改為爬列表頁.本文針對的是店內搜尋頁 以下是獲取網頁資料 param url 根據url獲取document public static document getdocument string url catch ioexception e...

python爬取天貓搜尋頁面產品標題

為了方便演示,這裡只爬取搜尋結果的第一頁,且無儲存 據說用lxml解析網頁更快 titles soup.select j itemlist div div p.producttitle a 在elements介面點網頁定位到 右鍵選copy copy selector,複製css途徑,若要篩選全部型...