在 pycharm 下写一个 python 脚本,通过 requests.get()请求服务
器,time.sleep()设置间隔访问时间,以防止返爬取机制。然后通过
BeautifulSoup 对服务器返回的网页信息进行解析。接着查看网页
源代码,找出所要爬取一类信息的所有相同标题并通过 select()方
法选择出来。select()返回的是一个列表。设置一个 zip 函数,将
爬取的每类信息与设置的键值一一对应,通过循环将所有信息转换
成字典的结构,然后通过 for 循环 (for i in range(len(data))
与字典解析(title_list = data[i]['title'])将信息整理成列表,
再通过数据框与列表的关系变成 DataFrame 的形式。最后将相关列
设置成需要的自变量与因变量。最后运用逻辑回归,随机森林等统
计学方法进行数据分析。
看着这些16,17年初次加入创新基地,被老师‘恐吓’写的代码,或许这些代码已经无法正常运行了,但是回忆如猛兽般袭来,一起写代码的伙伴,毕业的毕业考研的考研,走的走,散的散。感恩所有的遇见,没有你们我现在屁都不是。虽然你们都还不知道我感谢你们 哈哈
import requests,time #导入请求库
from bs4 import BeautifulSoup #导入解析库
url = 'http://guba.sina.com.cn/?s=bar&name=sh000001&type=0&page=1'
header = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2745.1 Kuaiso/1.42.501.426 Safari/537.36'}#伪装
wb_data = requests.get(url, headers=header)
soup = BeautifulSoup(wb_data.text, 'html.parser')
def get_links_from(): #获取链接函数
urls = []
list_view =[ 'http://gl.58.com/pbdn/?islocal=1&PGTID=0d305a36-0040-ffed-27c3-1faf15537e88&ClickID=1 ',
'http://gl.58.com/pbdn/pn2/?islocal=1&PGTID=0d305a36-0040-f5d7-1f4c-ce19c0b966c1&ClickID=2']
wb_data = requests.get(list_view[0])#翻页
soup = BeautifulSoup(wb_data.text, 'html.parser')
for link in soup.select('tr.zzinfo td.t a.t'):
urls.append(link.get('href').split('?')[0]) #append是指在列表后面添加 split是一个截断函数以“?”截断
return urls
def get_item_info(): #获取目标的函数
urls = get_links_from()
time.sleep(4)
for url in urls: #一个for循环 让urls里面的所有url都解析出来
wb_data = requests.get(url)
soup = BeautifulSoup(wb_data.text, 'html.parser')
data = {
'title': soup.title.text,
'price': soup.select('span.price_now')[0].text,
'area': list(soup.select('.palce_li')[0].stripped_strings),
'look': soup.select('.look_time')[0].text,
'discription': soup.select('div.baby_kuang')[0].text
}
with open('58tc.txt', 'a+', encoding='utf-8')as f: # 保存为文本
f.write(str(data))
print(data)
get_item_info()