from bs4 import beautifulsoup
import requests
import ip_proxy
from urllib import parse
headers =
defget_boss_info
(my_ip,detailed_url):
#url = ''
proxy =
response = requests.get(detailed_url, headers=headers, proxies = proxy, timeout=5)
soup = beautifulsoup(response.text, 'lxml')
title = soup.find('h1').text
#div_ele = soup.find('div', class_="name")
#print(div_ele)
salary = soup.find('span', class_="badge").text.replace('\n', '').strip()
print(title)
print(salary)
gezhong_info = soup.select('div.info-primary > p')[0].text.replace('\n', '').strip()
print(gezhong_info)
gangwei_info = soup.select('div.text')[0].text
print(gangwei_info)
# 獲取詳情頁的url
defget_detail_url
(my_ip, url):
# url = ''
proxy =
response = requests.get(url, headers = headers, proxies=proxy, timeout=5)
soup = beautifulsoup(response.text, 'lxml')
#a_ele_list = soup.select('h3.name > a')
a_ele_list = soup.select('div.job-list > ul > li div.info-primary > h3 > a')
for a_ele in a_ele_list:
# 屬性值的獲取可以通過類似字典的方式獲取
a_href = a_ele['href']
# 拼接詳情頁的鏈結
href = parse.urljoin(url, a_href)
print('詳情頁的href: ' + href)
# 重試三次, 獲取**訪問boss直聘, 三次沒有成功訪問就跳過
for i in range(0,3):
try:
# 獲取詳情頁的資訊
get_boss_info(my_ip, href)
break
except exception as e:
print(e)
my_ip.update_ip_proxy_str()
defget_all_info
(my_ip):
base_url = ''
for i in range(1,4):
# 每乙個分頁的url
url = base_url % (i, i)
# 迴圈處理, 如果proxy不好使, 就需要換**, 如果重試4次依然不好使,就跳過
for i in range(0, 4):
try:
# 迴圈四次訪問boss直聘的**, 分頁的內容
# get_detail_url(my_ip, url)
get_detail_url(my_ip, url)
break
except exception as e:
print(e)
my_ip.update_ip_proxy_str()
if __name__ == '__main__':
my_ip = ip_proxy.ip_getter()
# 獲取乙個ip
# proxy_str = '36.27.143.72:21450'
# print(proxy_str)
# 獲取所有的boss直聘資訊
get_all_info(my_ip)
# with open('boss.html', 'wb') as f:
# f.write(response.content)
自動識別USB埠連線資訊
技術背景 隨著usb埠裝置越來越多,大部分裝置可以通過電腦連線來實現資料訪問以及各種操作,usb埠的裝置種類增多,電腦的usb埠也不斷增加,如果想連線到電腦上必須通過具備有usb埠的資料線。但各種裝置都到電腦上很容易混亂不知道哪個和哪個的,就是在用滑鼠點選退出不需要的硬體裝置埠時,很不容易區分,並且...
堆疊資訊獲取value 招聘職位資訊爬取
1 網路抓包 我使用的是谷歌瀏覽器,通過抓包分析發現職位資訊請求的資料介面是 構造請求引數,請求資料,示例 如下 get position函式需要傳達兩個引數,kd代表請求的關鍵字,pn代表請求的頁數。這樣的確可以請求到拉勾的職位資料,當我們實際執行指令碼的時候就會發現,在抓取10頁資料之後,便會請...
python爬取資料庫資訊
一 今日學習內容 資料庫儲存爬取的資訊 mysql 爬取到的資料為了更好地進行分析利用,而之前將爬取得資料存放在txt檔案中後期處理起來會比較麻煩,很不方便,如果資料量比較大的情況下,查詢更加麻煩,所以我們通常會把爬取的資料儲存到資料庫中便於後期分析利用。這裡,資料庫選擇mysql,採用pymysq...