爬取10萬商品數(shù)據(jù)

出現(xiàn)的問題:

  • 當爬取交易地點,使用代碼

時些阅,爬取的結(jié)果是 ['交易地點:'],而不是我想要的‘地點-地點’形式

解決方法

將selector改為

soup.select('#wrapper > div.content.clearfix > div.leftBox > div > div > ul > li:nth-of-type(3) > a)

如果僅僅是用

soup.select('#wrapper > div.content.clearfix > div.leftBox > div > div > ul > li:nth-of-type(3) > a)[0].stripped_strings

那么結(jié)果也只是網(wǎng)站中出現(xiàn)的第一個地點,而不是全部
所以蹬铺,采用map()函數(shù)遍歷

  • 在爬取過程中出現(xiàn)了
requests.exceptions.ChunkedEncodingError: ("Connection broken: ConnectionResetError(54, 'Connection reset by peer')", ConnectionResetError(54, 'Connection reset by peer'))
```這種錯誤
在網(wǎng)上查了一下宇姚,是屬于[python requests接收chunked編碼問題](http://blog.csdn.net/wangzuxi/article/details/40377467)
但是網(wǎng)上給出的解決方法太專業(yè)匈庭,我一入門漢瞬間懵逼了
#####解決方法
后來我注意到在網(wǎng)頁的Request Headers中有一個Accept-Encoding,應該是關于編碼問題的,所以就在在requests.get中添加了
```headers = { 'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_4)AppleWebKit/537.36(KHTML,likeGecko)Chrome/44.0.2403.157 Safari/537.36',    'Connection':'keep-alive','Accept-Encoding':'gzip, deflate'}```然后就順利爬取了
- 后來爬取到5萬多條時出現(xiàn)了```requests.exceptions.ConnectionError: None: Max retries exceeded with url: /qitawupin/o111/ (Caused by None)```錯誤提示
######解決方法
使用代理ip


#下面是代碼部分
- 爬取分類鏈接

import requests
from bs4 import BeautifulSoup
first_url = 'http://bj.ganji.com/wu/'
base_url = 'http://bj.ganji.com'

http://bj.ganji.com/jiaju/

def get_second_url(url):
web_data = requests.get(url)
soup = BeautifulSoup(web_data.text, 'lxml')
second_urls = soup.select('dl.fenlei dt a')
for second_url in second_urls:
whole_second_url = base_url + second_url.get('href')
print(whole_second_url)

將得到的結(jié)果賦值給whole_second_url 

- 爬取列表頁

mport requests,time,pymongo,random
from bs4 import BeautifulSoup
client = pymongo.MongoClient('localhost',27017)
ganji = client['ganji']
whole_third_url = ganji['whole_third_url']
item_info = ganji['item_info']
headers = {'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.157 Safari/537.36', 'Connection':'keep-alive','Accept-Encoding':'gzip, deflate'}
proxy_list = ['http://117.177.250.151:8081', 'http://111.85.219.250:3129', 'http://122.70.183.138:8118',]
proxy_ip = random.choice(proxy_list)
proxies = {'http':proxy_ip}
def get_third_url(whole_second_url,pages):
whole_url = '{}o{}/'.format(whole_second_url,str(pages))
web_data = requests.get(whole_url,headers = headers,proxies = proxies)
# time.sleep(5)
soup = BeautifulSoup(web_data.text, 'lxml')
if soup.find_all('a',{'class':'next'}):
for link in soup.select('li.js-item a.ft-tit'):
third_url = link.get('href')
whole_third_url.insert_one({'url':third_url})
#print(third_url)
else:
pass


- 爬取詳情頁具體信息

def get_item_info(url):
web_data = requests.get(url)
soup = BeautifulSoup(web_data.text, 'lxml')
title = soup.select('h1.title-name')[0].text if soup.find_all('h1',{'class':'title-name'}) else None
#這里考慮到有刪除頁和轉(zhuǎn)轉(zhuǎn)的商品頁(和一般的商品頁不一樣)浑劳,根據(jù)觀察阱持,刪除頁和轉(zhuǎn)轉(zhuǎn)頁的商品標題的html不一樣,所以以標題作為判斷標準
if title == None:
pass
else:
time = list(soup.select('i.pr-5')[0].stripped_strings) if soup.find('i',{'class':'pr-5'}) else None
type = soup.select('#wrapper > div.content.clearfix > div.leftBox > div:nth-of-type(3) > div > ul > li:nth-of-type(1) > span > a')[0].text if soup.find_all('ul',{'class':'det-infor'}) else None
price = soup.select('i.f22.fc-orange.f-type')[0].text if soup.find_all('i',{'class':'f22 fc-orange f-type'}) else None
address = list(map(lambda x:x.text,soup.select('#wrapper > div.content.clearfix > div.leftBox > div > div > ul > li:nth-of-type(3) > a'))) if soup.find_all('li') else None
old_new = soup.select('ul.second-det-infor.clearfix > li:nth-of-type(2) > label')[0].text if soup.select('ul.second-det-infor.clearfix > li:nth-of-type(2) > label') else None
item_info.insert_one({'title':title, 'time':time, 'type':type, 'price':price, 'address':address, 'old_new':old_new})

    print(title,time,type,price,address,old_new)
- 開始爬取 

from multiprocessing import Pool
from get_second_url import whole_second_url
from get_third_url import get_third_url
from get_third_url import get_item_info
def get_all_links_from(whole_second_url):
for i in range(1,121):
get_third_url(whole_second_url,i)

if name == 'main':
pool = Pool()
pool.map(get_all_links_from,whole_second_url.split())


- 計數(shù)
使用以下程序?qū)Υ鎯Φ綌?shù)據(jù)庫的數(shù)據(jù)進行計數(shù)

import time
from get_third_url import whole_third_url
while True:
print(whole_third_url.find().count())
time.sleep(5)

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末魔熏,一起剝皮案震驚了整個濱河市衷咽,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌蒜绽,老刑警劉巖镶骗,帶你破解...
    沈念sama閱讀 222,590評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異躲雅,居然都是意外死亡鼎姊,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,157評論 3 399
  • 文/潘曉璐 我一進店門相赁,熙熙樓的掌柜王于貴愁眉苦臉地迎上來此蜈,“玉大人,你說我怎么就攤上這事噪生●烧裕” “怎么了?”我有些...
    開封第一講書人閱讀 169,301評論 0 362
  • 文/不壞的土叔 我叫張陵跺嗽,是天一觀的道長战授。 經(jīng)常有香客問我,道長桨嫁,這世上最難降的妖魔是什么植兰? 我笑而不...
    開封第一講書人閱讀 60,078評論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮璃吧,結(jié)果婚禮上楣导,老公的妹妹穿的比我還像新娘。我一直安慰自己畜挨,他們只是感情好筒繁,可當我...
    茶點故事閱讀 69,082評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著巴元,像睡著了一般毡咏。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上逮刨,一...
    開封第一講書人閱讀 52,682評論 1 312
  • 那天呕缭,我揣著相機與錄音,去河邊找鬼。 笑死恢总,一個胖子當著我的面吹牛迎罗,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播片仿,決...
    沈念sama閱讀 41,155評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼纹安,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了滋戳?” 一聲冷哼從身側(cè)響起钻蔑,我...
    開封第一講書人閱讀 40,098評論 0 277
  • 序言:老撾萬榮一對情侶失蹤啥刻,失蹤者是張志新(化名)和其女友劉穎奸鸯,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體可帽,經(jīng)...
    沈念sama閱讀 46,638評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡娄涩,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,701評論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了映跟。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蓄拣。...
    茶點故事閱讀 40,852評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖努隙,靈堂內(nèi)的尸體忽然破棺而出球恤,到底是詐尸還是另有隱情,我是刑警寧澤荸镊,帶...
    沈念sama閱讀 36,520評論 5 351
  • 正文 年R本政府宣布咽斧,位于F島的核電站,受9級特大地震影響躬存,放射性物質(zhì)發(fā)生泄漏张惹。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,181評論 3 335
  • 文/蒙蒙 一岭洲、第九天 我趴在偏房一處隱蔽的房頂上張望宛逗。 院中可真熱鬧,春花似錦盾剩、人聲如沸雷激。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,674評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽侥锦。三九已至,卻和暖如春德挣,著一層夾襖步出監(jiān)牢的瞬間恭垦,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,788評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留番挺,地道東北人唠帝。 一個月前我還...
    沈念sama閱讀 49,279評論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像玄柏,于是被迫代替她去往敵國和親襟衰。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,851評論 2 361

推薦閱讀更多精彩內(nèi)容