python爬虫实例方法(批量爬取网页信息基础代码)


前言

8月31日爬虫笔记汇总,有不明白的欢迎提问交流。
#如有不当之处欢迎大佬指正#


提示:以下是本篇文章正文内容,下面案例可供参考

一、爬虫实例

0.爬取深圳租房信息

流程分析:

  1. 网址:http://zf.szhome.com/Search.html?sor=2&page=1

  2. 步骤:

    1)第一步找到所有class="lpinfo"的行信息

    2)在第1步的基础上找到class=“left esf-info”

    3)在2的基础上找到第2个p,获取文本,获得户型

    4)在第1步的基础上找到class=“right esf-pri”

    5)在第4步的基础上找到class=“red f20”,获取文本,就获得了价格

import requests
from bs4 import BeautifulSoup

for page in range(1,9):
    with open('深圳房租信息.txt','a',encoding='utf-8') as f:
        r = requests.get("http://zf.szhome.com/Search.html?sor=2&page=%d" % page)  # 发送请求
        content = r.text  # 获取响应html文本
        # print(content)
        soup = BeautifulSoup(content, 'html.parser')   #解析网页内容,指定BeautifulSoup解析器为'html.parser'
        # 根据某个标签的属性,查找所有标签
        rows = soup.find_all(attrs={
   'class': 'lpinfo'}) #是一个多行
        for row in rows:
            left = row.find(attrs={
   'class':'left esf-info'})
            ps = left.find_all('p')#找到left...下面所有的<p>标签
            info = ps[0].get_text()
            info = info.split('|')
            print(info)
            #找价格
            right = row.find(attrs={
   'class': 'right esf-pri'})
            price = right.find(attrs={
   'class': 'red f20'}).get_text()
            info.append(price)
            f.writelines(','.join(info))#1次写多行
            f.write('\n')

补充内容:格式化字符串

# 格式化字符串。因为有时候需要动化处理
# %s,字符串在这里,需要一个字符串
# %f,浮点数
# %d,正整数

s = '%s今天吃了%s,花了多少钱%.2f,今天星期%d' % ('wahaha','包子',2.43,3)
print(s)

1.爬取深圳算法岗位信息


import requests
import re
import json
import pandas

job_name_list = []
company_name_list = []
providesalary_text_list = []
workarea_text_list = []
degreefrom_list = []
work_year_list = []
jobwelf_list =[]
companysize_text_list = []
companyind_text_list = []
#################   以下选中区域为主要爬取分析代码   ##############
##获取网页包头并赋值给headers[^1]
headers = {
   
    "User-Agent":"Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36"}
    
##for循环设定动态URL地址
##剩下的四行代码是获取需要的信息,并格式化。主要通过分析谷歌浏览器网页中检查里的 Element 内容以及 对这四行代码的调试分析自己所需内容的位置。可通过修改关键字直接调用
for x in range(1, 58):
    url = "https://search.51job.com/list/040000,000000,0000,00,9,99,%25E7%25AE%2597%25E6%25B3%2595%25E5%25B7%25A5%25E7%25A8%258B%25E5%25B8%2588,2,{}.html?lang=c&postchannel=0000&workyear=99&cotype=99&degreefrom=99&jobterm=99&companysize=99&ord_field=0&dibiaoid=0&line=&welfare=".format(x)
    rsp = requests.get(url, verify=False, headers=headers)
    result = re.findall('window.__SEARCH_RESULT__ =(.*?)</script>', rsp.text)
    result = json.loads(result[0])
    engine_search_result = result.get('engine_search_result')
################# 将爬取的内容分别写入创建的空列表  ###############
    for engine in engine_search_result:
        job_name_list.append(engine.get('job_name'))
        company_
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值